Android分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?
网上找到的一篇关于: 针对不同的应用,使用不同的方式的文章。原文地址
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分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?的更多相关文章
- Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比 上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1 ...
- android studio中为gradle指定cmake版本
Android Studio相当于是Intellij基础上写了一个AS插件,这个插件使用gradle作为构建系统,因此构建出现问题先考虑gradle的文档. gradle可以使用native buil ...
- Android自动化测试中AccessibilityService获取控件信息(1)
Android自动化测试中AccessibilityService获取控件信息(1) 分类: android自动化测试2014-03-24 15:31 3455人阅读 评论(16) 收藏 举报 and ...
- Android应用中实现系统“分享”接口
在android下各种文件管理器中,我们选择一个文件,点击分享可以看到弹出一些app供我们选择,这个是android系统分享功能,我们做的app也可以出现在这个列表中. 第一步:在Manifest.x ...
- Android应用中使用及实现系统“分享”接口
为了应用的推广.传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信.微博等等一切实现了分享功能的应用列表.这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己应用出现分享列表中.An ...
- 《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 && 检查一个字符串是文本还是二进制
过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: impor ...
- 如何在Android Studio中指定NDK位置?
如何在Android Studio中指定NDK位置? 问题描述 NDK已经手工下载解包在本地: D:\Portable\android-ndk-r13b 每次创建支持C++项目时,都提示NDK没配置, ...
- Android已上线应用开源分享中(第一季)
这是我上线的第一个android应用,在百度.腾讯.豌豆荚等平台测试通过,也有了部分用户,还是可以的啊,哈哈.现在分享给大家,当然,源码我也会分享. 1.软件是一个管理wifi的小工具 (1)查询.连 ...
- linux中利用iptables+geoip过滤指定IP
1. 前提条件 iptables >= 1.4.5 kernel-devel >= 3.7 2. 安装依赖包 代码如下 复制代码 # yum install gcc gcc-c++ m ...
随机推荐
- 尽可能保留原有数据,建立UEFI与BIOS双启PE优盘
尽可能保留原有数据,建立UEFI与BIOS双启PE优盘1.确保优盘或者移动硬盘有一个FAT32分区,如果没有FAT32分区,就用傲梅分区助手或者ppm转换一个现有的分区到FAT32分区0x0C,或者新 ...
- Git最佳实践
1.git init 2.git add. 3.git add README.md 4.git commit -m "init" 5.git remote add origin h ...
- Android DisplayMetrics类获取屏幕大小
DisplayMetrics public class DisplayMetrics extends Object java.lang.Object ↳ android.util.Disp ...
- oracle with as
http://blog.csdn.net/a9529lty/article/details/4923957/
- 了解Sql Server的执行计划
前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性 ...
- 为什么上传文件的表单里要加个属性enctype
为什么上传文件的表单里要加个属性enctype 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上 ...
- Phonebook 导出联系人到SD卡(.vcf)
2014-01-13 16:53:55 1. 在Phonebook中导出联系人到内部存储,SD卡或者通过蓝牙.彩信.邮件等分享联系人时,通常会先将选择的联系人打包生成.vcf文件,然后将.vcf文件分 ...
- UI的一些方法(按钮和线)
//设置按钮字体颜色 [self.determineBtn setTitleColor:[UIColor colorWithHexString:@"0xff9500"] forSt ...
- sqoop的export的说明
1.通用参数说明
- LVDS,MIPI,EDP
一.背景介绍: 随着显示分辨率的越来越高,传统的VGA.DVI等接口逐渐不能满足人们的视觉需求.随后就产生了以HDMI.DisplayPort为代表的新型数字接口,外部接口方面HDMI占据了较大市场优 ...