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 回答