web和stackoverflow包含几个示例,说明如何使用ACTION_GET_CONTENT意图从另一个Android应用程序获取文件(例如,将其用作电子邮件附件)。但是我需要实现什么类来创建为ACTION_GET_CONTENT事件提供内容的应用程序,例如我可以选择此应用程序(例如,用于选择电子邮件附件)。
ContentProvider是正确的解决方案吗?我需要添加到AndroidManifest.xml中吗?
答案 0 :(得分:15)
经过几个小时的网络搜索后,我找到了以下解决方案。
实施活动处理意图。在其中,使用以下或更具体的代码:
Uri resultUri = // the thing to return
Intent result = new Intent();
result.setData(resultUri);
setResult(Activity.RESULT_OK, result);
finish();
将以下内容添加到Manifest:
<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>
答案 1 :(得分:0)
从api级别18开始,传入意图也可以将EXTRA_ALLOW_MULTIPLE设置为true,在这种情况下,您可以在结果中发回多个文件。为此,您需要将其设置为ClipData:
resultIntent.setClipData(clipData)