2012-08-13 13 views
7

webとstackoverflowには、ACTION_GET_CONTENTインテントを使用して別のAndroidアプリからファイルを取得する方法(例:電子メールの添付ファイルとして使用する方法)がいくつか含まれています。しかし、ACTION_GET_CONTENTイベントのコンテンツを提供するアプリケーションを作成するためには、どのようなクラスを実装しなければならないのですか(たとえば、電子メールの添付ファイルを選択するなど)。Intent.ACTION_GET_CONTENTのコンテンツの提供方法

ContentProviderは適切なソリューションですか? AndroidManifest.xmlに何を追加する必要がありますか?

答えて

15

ウェブ検索の数時間後、次の解決策が見つかりました。

  1. アクティビティ処理インテントを実装します。マニフェストに以下を追加し

    Uri resultUri = // the thing to return 
    Intent result = new Intent(); 
    result.setData(resultUri); 
    setResult(Activity.RESULT_OK, result); 
    finish(); 
    
  2. :下記以上の特定のコードを使用し、内

    <activity 
        android:name="ActivityName" 
        android:label="Some label" > 
        <intent-filter> 
         <action android:name="android.intent.action.GET_CONTENT" /> 
         <category android:name="android.intent.category.OPENABLE" /> 
         <category android:name="android.intent.category.DEFAULT" /> 
         <data android:mimeType="*/*" /> 
        </intent-filter> 
        <intent-filter> 
         <action android:name="android.intent.action.PICK" /> 
         <category android:name="android.intent.category.DEFAULT" /> 
         <data android:mimeType="*/*" /> 
        </intent-filter> 
    </activity> 
    
+0

それはこの場合http://stackoverflow.com/questions/14151970/extra-slash-appends-with-file-uriでは動作しない線量ことを確認してください-so-file-name-is-empty-in-file-input-contr –

+0

ACTION_PICKインテントフィルタなしで私のために働くようです。インテントフィルタが対応する必要がある場合の考え方前後のKKのGET_CONTENTインテントだけで動作するようです。 – cargo8

0

APIレベル18着信意図から出発してもEXTRA_ALLOW_MULTIPLEはtrueに設定されていることができるとこの場合、結果を複数のファイルに返すことができます。行うにはあなたがClipDataとしてそれを設定する必要があります。

resultIntent.setClipData(clipData) 
関連する問題