您的位置:首页 > 移动开发 > Android开发

Android分享中, 过滤指定的应用,已经过滤蓝牙, 并且对不同的分享方式发送不同的内容?

2012-09-15 19:27 531 查看
            String contentDetails = "朋友快来玩 ***游戏把";

Intent intent = new Intent(Intent.ACTION_SEND);  //  启动分享发送的属性
intent.setType("text/plain");
intent.setType("image/*");     //分享图片信息类型
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0);

if(!resInfo.isEmpty()){
List<Intent>targetedShareIntents =  new ArrayList<Intent>();
for(ResolveInfo info :resInfo){
Intent targeted = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");     //分享图片信息类型
targeted.setType("text/plain");
ActivityInfo activityInfo = info.activityInfo;

if(activityInfo.packageName.contains("bluetooth")||
activityInfo.name.contains("bluetooth")){
continue;        //过滤蓝牙应用
}
if(activityInfo.packageName.contains("com.my.activity")||
activityInfo.name.contains("com.my.activity")){
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, contentDetails);
}else{
targeted.putExtra(Intent.EXTRA_TEXT, contentDetails);
}
targeted.setPackage(activityInfo.packageName);
targetedShareIntents.add(targeted);
}
//分享框标题
Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(0),"选择程序分享");
if(chooserIntent == null){
return;
}

chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
targetedShareIntents.toArray(new Parcelable[]{}));
try{
startActivity(chooserIntent);
}catch(android.content.ActivityNotFoundException ex){
Toast.makeText(Activity_AboutMe.this, "没找到分享的应用", Toast.LENGTH_SHORT).show();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐