Mic*_*zuk 5 android android-intent
我正在使用:
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/jpeg");
(...)
Run Code Online (Sandbox Code Playgroud)
分享我的应用程序中生成的图像.我想添加自定义操作(将图像保存到图库)到创建的意图
Intent.createChooser(i, "...");
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用intent-filter为android.intent.action.SEND操作添加活动,但这会使我的活动可见并且可供所有应用程序使用.我可以将setType("image/jpeg")更改为setType("image/*")并添加
<data android:mimeType="image/foobar">
Run Code Online (Sandbox Code Playgroud)
意图过滤,但这将使我的活动对所有要求image/*的应用程序可见.
是否有任何方法可以通过调用程序包名称(或其他可以将我的应用程序与其他应用程序区分开来)来过滤操作可见性?
Android 对于这个需求有一个很好的解决方案,技巧是Intent.EXTRA_INITIAL_INTENTS:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/jpeg");
List<Intent> myAddedIntents = new ArrayList<Intent>();
Intent myIntent = new Intent(...);
myAddedIntents.add(myIntent);
Intent chooserIntent = Intent.createChooser(intent, "Send via:");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
myAddedIntents.toArray(new Parcelable[] {}));
startActivity(chooserIntent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |