Android 获取所有已安装应用程序的包名

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LosingCarryJie/article/details/81514075
//因为我的手机是华为手机所以过滤掉了华为,大家可以按需求过滤
public  void getAppProcessName(Context context) {
        //当前应用pid
        final PackageManager packageManager = getPackageManager();
        final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        // get all apps
        final List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);
        for (int i = 0; i <apps.size() ; i++) {
            String name = apps.get(i).activityInfo.packageName;
            if(!name.contains("huawei")&&!name.contains("android")){
                Log.i("TAG", "getAppProcessName: "+apps.get(i).activityInfo.packageName);
            }
        }
    }

当我们获取了应用程序的包名之后就可以随意跳转到指定的App了

比如我想在我的apk里面打开《手机淘宝》

private void launch() {
        Intent intent = getPackageManager().getLaunchIntentForPackage("com.taobao.taobao");
        // 这里如果intent为空,就说名没有安装要跳转的应用嘛
        if (intent != null) {
            // 这里跟Activity传递参数一样的嘛,不要担心怎么传递参数,还有接收参数也是跟Activity和Activity传参数一样
            intent.putExtra("name", "liangchaojie");
            intent.putExtra("birthday", "1994-06-18");
            startActivity(intent);
        } else {
            // 没有安装要跳转的app应用,提醒一下
            Toast.makeText(getApplicationContext(), "哟,赶紧下载安装这个APP吧", Toast.LENGTH_LONG).show();
        }
    }

猜你喜欢

转载自blog.csdn.net/LosingCarryJie/article/details/81514075
今日推荐