自定义隐式Intent弹出框,重写createChooser方法

 
 
 
 
 
 
 

获取所有报名:
	PackageManager pm = getActivity().getPackageManager();
	List<PackageInfo> apps = pm.getInstalledPackages(0);
	Iterator<PackageInfo> iter = apps.iterator();
	List<String> AppNamelist=new ArrayList<>();
	while (iter.hasNext()) {
  	  PackageInfo info = iter.next();
  	  String packageName = info.packageName;
  	  if (!packageName.equals("com.moblico.briefcase")) {
        AppNamelist.add(packageName);
   	 }
	}

自定义隐式Intent弹出框:
	
Intent it =new Intent(Intent.ACTION_VIEW);
it.setType(mineType);
it.setAction(Intent.ACTION_VIEW);
it.addCategory("android.intent.category.DEFAULT");
File file = new File(savePAth + "/" + filename);
List<ResolveInfo> resInfo =getActivity(). getPackageManager().queryIntentActivities(it,0);
if(!resInfo.isEmpty()){
    List<Intent> targetedShareIntents =new ArrayList<Intent>();
    for(ResolveInfo info : resInfo){
        Intent targeted =new Intent(Intent.ACTION_VIEW);
        targeted.setType(mineType);
        ActivityInfo activityInfo = info.activityInfo;
        if(activityInfo.packageName.contains( getActivity().getPackageName())|| activityInfo.name.contains( getActivity().getPackageName())){
            continue;
        }
        targeted.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
        targeted.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Uri uri = Uri.fromFile(file);
         targeted.setDataAndType(uri, mineType);
        targeted.setPackage(activityInfo.packageName);
        targetedShareIntents.add(targeted);
    }
    Intent chooserIntent =Intent.createChooser(targetedShareIntents.remove(0), getActivity().	getTitle());
    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(getActivity(),"Can't find view component to view",Toast.LENGTH_SHORT).show();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值