3

私はかなり長い間解決策を探しています、そして私はますます欲求不満になっています。

自分のアプリが他のアプリにコンテンツを提供できるようにしたいと思います。例:GoogleMailアプリを使用する場合、添付ファイルを追加できます。添付ファイルのファイルを提供できるすべてのアプリを示すダイアログが開きます。次のようなインテントフィルターを使用してアクティビティを定義したため、アプリは既にダイアログに表示されています。

    <intent-filter >
            <action android:name="android.intent.action.GET_CONTENT" />
            <action android:name="android.intent.action.PICK" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.OPENABLE" />
            <data android:mimeType="image/*" />
        </intent-filter>

だから私のアプリを選ぶと、それは活動を開始しています。このアクティビティにより、ユーザーは写真を選択してSDカードに書き込むことができます。ここまでは順調ですね。しかし、どうすれば正しく返品できますか?GoogleMailの添付ファイルは作成されないためです。私はそれをこのように返します:

if(file!=null)
{
  Intent resultIntent=new Intent();
  resultIntent.setType("image/jpg");  

  Uri uri=Uri.fromFile(file);

  //uri=Uri.parse(uri.toString().replace("file", "content"));
  resultIntent.putExtra(Intent.EXTRA_STREAM, uri); 
  resultIntent.putExtra(Intent.EXTRA_UID, uri); 
  resultIntent.setData(uri);
  setResult(RESULT_OK, resultIntent);
  finish();
}

誰かが私を助けてくれたらとても幸せです。それは私が間違っているのは単純なことだと思いますが、私を助けるものは何も見つかりません。:(

よろしくお願いします

4

1 に答える 1

1

おそらく、ストリームプロバイダーを実装する必要があります。そこには本当に良いガイドはありませんが、これは私が見つけることができる最も近いものです。

于 2012-09-04T18:50:17.353 に答える