Android-使用最后一个动作与Intent分享

Guanlun

在使用Intent进行共享(Intent.ACTION_SEND)时,如何记住上一个用于共享的应用程序并为该应用程序添加快捷方式?

在我的应用程序中,如果我刚刚使用gmail分享了我的文章,是否可以添加快捷方式“与gmail共享”,这样就可以直接与gmail共享而无需选择应用程序?

预先感谢!

Zhenghong Wang

没有侦听器可检测您在默认意图选择器中选择的应用程序。
因此,您必须创建一个对话框,其中包含您ACTION_SEND自己的所有意图

您可以ACTION_SEND通过以下代码获取其意图列表

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
PackageManager pm = v.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);

然后,使用列表构建对话框,为每个意图添加侦听器。
用户点击其中一个后,保存其“包名”。您可以通过查找包名称ResolveInfo.activityInfo.name

接下来,您可以使用包名称来过滤ACTION_SEND,仅触发过滤后的应用。
这是启动Twitter应用程序的代码段。

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
PackageManager pm = v.getContext().getPackageManager();
List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent, 0);
for (final ResolveInfo app : activityList) {  
    if ("com.twitter.android.PostActivity".equals(app.activityInfo.name)) {
        final ActivityInfo activity = app.activityInfo;
        final ComponentName name = new ComponentName(activity.applicationInfo.packageName,activity.name);
        shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
        shareIntent.setComponent(name);
        v.getContext().startActivity(shareIntent);
        break;
    }
}

希望能帮助到你!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android-使用最后一个动作与Intent分享

来自分类Dev

Android延迟下一个动作

来自分类Dev

通过setClassName在Android中使用相同的包启动一个新的Intent

来自分类Dev

在android中使用Intent将图像共享到另一个应用程序

来自分类Dev

仅使用Mpchart在android中显示的第一个和最后一个标签

来自分类Dev

Android EditText-使用按钮删除最后一个字母

来自分类Dev

我如何在android的listview项目中有一个Facebook分享按钮?

来自分类常见问题

在最后一个数组中选择数据(android)

来自分类Dev

在最后一个屏幕上滑动时的Android ViewPager

来自分类Dev

Android arrayList全部项目被最后一个替换

来自分类Dev

从Android设备获取实际位置(不是最后一个)

来自分类Dev

Android-RelativeLayout中的最后一个视图消失

来自分类Dev

android中的最后一个字节

来自分类Dev

Android列表仅包含最后一个元素

来自分类Dev

XML最后一个子填充的问题(Android)

来自分类Dev

Android arrayList整个项目被最后一个替换

来自分类Dev

从recyclerview android删除最后一个项目后的吐司

来自分类Dev

在android ListView中,最后一个元素重复显示

来自分类Dev

Android Intent直接与Facebook分享?

来自分类Dev

Android RecyclerView查找ItemDecoration的第一个和最后一个视图

来自分类Dev

Android群组通知显示最后一个通知而不是第一个

来自分类Dev

使用Intent或Android中的静态方法将数据从一个活动访问到另一个活动?

来自分类Dev

如何使用Intent预加载AdMob插页式广告并发送到另一个Android活动

来自分类Dev

在Android上打开另一个应用程序时是否可以记录动作?

来自分类Dev

在Android上打开另一个应用程序时是否可以记录动作?

来自分类Dev

为什么 OnLongClicked 动作监听器(方法)在 Android 中返回一个值

来自分类Dev

从ListView中选择一个蓝牙设备,然后打开一个新的Intent(Android)

来自分类Dev

Android:从另一个类中调用方法,该方法将启动一个新的Intent

来自分类Dev

Android:无法通过Intent分享图片

Related 相关文章

  1. 1

    Android-使用最后一个动作与Intent分享

  2. 2

    Android延迟下一个动作

  3. 3

    通过setClassName在Android中使用相同的包启动一个新的Intent

  4. 4

    在android中使用Intent将图像共享到另一个应用程序

  5. 5

    仅使用Mpchart在android中显示的第一个和最后一个标签

  6. 6

    Android EditText-使用按钮删除最后一个字母

  7. 7

    我如何在android的listview项目中有一个Facebook分享按钮?

  8. 8

    在最后一个数组中选择数据(android)

  9. 9

    在最后一个屏幕上滑动时的Android ViewPager

  10. 10

    Android arrayList全部项目被最后一个替换

  11. 11

    从Android设备获取实际位置(不是最后一个)

  12. 12

    Android-RelativeLayout中的最后一个视图消失

  13. 13

    android中的最后一个字节

  14. 14

    Android列表仅包含最后一个元素

  15. 15

    XML最后一个子填充的问题(Android)

  16. 16

    Android arrayList整个项目被最后一个替换

  17. 17

    从recyclerview android删除最后一个项目后的吐司

  18. 18

    在android ListView中,最后一个元素重复显示

  19. 19

    Android Intent直接与Facebook分享?

  20. 20

    Android RecyclerView查找ItemDecoration的第一个和最后一个视图

  21. 21

    Android群组通知显示最后一个通知而不是第一个

  22. 22

    使用Intent或Android中的静态方法将数据从一个活动访问到另一个活动?

  23. 23

    如何使用Intent预加载AdMob插页式广告并发送到另一个Android活动

  24. 24

    在Android上打开另一个应用程序时是否可以记录动作?

  25. 25

    在Android上打开另一个应用程序时是否可以记录动作?

  26. 26

    为什么 OnLongClicked 动作监听器(方法)在 Android 中返回一个值

  27. 27

    从ListView中选择一个蓝牙设备,然后打开一个新的Intent(Android)

  28. 28

    Android:从另一个类中调用方法,该方法将启动一个新的Intent

  29. 29

    Android:无法通过Intent分享图片

热门标签

归档