如何提供Intent.ACTION_GET_CONTENT内容(How to provide con

2019-07-30 23:15发布

该网站和计算器包含几个例子来说明如何使用ACTION_GET_CONTENT意图得到其他Android应用程序的文件(例如,使用它作为电子邮件附件)。 但是,什么样的班级做我要实现以创建ACTION_GET_CONTENT事件比如我可以选择这款app的应用程序提供内容(例如,选择电子邮件附件)。

是ContentProvider的正确的解决方案? 和我有什么要添加到我的AndroidManifest.xml?

Answer 1:

网络搜索的几个小时后,我发现了以下的解决方案。

  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> 


Answer 2:

从API级别18进入的意图也开始可以有EXTRA_ALLOW_MULTIPLE设置为true,在这种情况下,你可以在结果多个文件送回去。 要做到这一点,你需要将其设置为ClipData:

resultIntent.setClipData(clipData)


文章来源: How to provide content for Intent.ACTION_GET_CONTENT