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

 

 

            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();                         
                        }                                       
                    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值