//因为我的手机是华为手机所以过滤掉了华为,大家可以按需求过滤
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();
}
}