Android分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?
2016-02-29 17:20
555 查看
网上找到的一篇关于: 针对不同的应用,使用不同的方式的文章。原文地址
String contentDetails = ""; String contentBrief = ""; String shareUrl = ""; Intent it = new Intent(Intent.ACTION_SEND); it.setType("text/plain"); List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(it, 0); if (!resInfo.isEmpty()) { List<Intent> targetedShareIntents = new ArrayList<Intent>(); for (ResolveInfo info : resInfo) { Intent targeted = new Intent(Intent.ACTION_SEND); targeted.setType("text/plain"); ActivityInfo activityInfo = info.activityInfo; // judgments : activityInfo.packageName, activityInfo.name, etc. if (activityInfo.packageName.contains("bluetooth") || activityInfo.name.contains("bluetooth")) { continue; } if (activityInfo.packageName.contains("gm") || activityInfo.name.contains("mail")) { targeted.putExtra(Intent.EXTRA_TEXT, contentDetails); } else if (activityInfo.packageName.contains("zxing")) { targeted.putExtra(Intent.EXTRA_TEXT, shareUrl); } else { targeted.putExtra(Intent.EXTRA_TEXT, contentBrief); } targeted.setPackage(activityInfo.packageName); targetedShareIntents.add(targeted); } Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0), "Select app to share"); if (chooserIntent == null) { return; } // A Parcelable[] of Intent or LabeledIntent objects as set with // putExtra(String, Parcelable[]) of additional activities to place // a the front of the list of choices, when shown to the user with a // ACTION_CHOOSER. chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[] {})); try { startActivity(chooserIntent); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(this, "Can't find share component to share", Toast.LENGTH_SHORT).show(); } }
相关文章推荐
- android开发框架(三)数据持久化(2)-SharedPreferences
- 5.3.2 开源Android-PullToRefresh下拉刷新源码分析
- Android Studio debug使用release的签名
- Android常见控件— — —ProgressBar
- Android SDK Manager 设置代理
- Android 属性动画(Property Animation) 全然解析 (下)
- Android binder机制驱动层学习
- 基于Netty实现的Android 消息推送(即时通信)的解决方案
- android自定义多功能EditText 边框状态和删除内容
- Android 线程本地变量<一> ThreadLocal源码解析
- Android 深入理解Android中的自定义属性
- Android中的复制粘贴
- Android动态加载一
- Android 自定义View (二) 进阶
- android 存储目录
- Android抽象布局——include、merge 、ViewStub
- Android开发常用命令行
- Android studio(1.4.1) NDK开发
- Android应用中实现选择本地文件与目录的实例分享
- Android事件传递机制