从一个APP打开另一个APP的工具类,直接上代码:
public class OpenAPPUtil {
public static void OpenApp(Context context, String packname) {
PackageManager packageManager = context.getPackageManager();
if (checkPackInfo(context, packname)) {
Intent intent = packageManager.getLaunchIntentForPackage(packname);
context.startActivity(intent);
} else {
Toast.makeText(context, "没有安装" + packname, Toast.LENGTH_SHORT).show();
}
}
/**
* 打开指定APP的指定页面
*
* @param context
* @param packname 指定APP的包名
* @param activityPath 指定activity的路径
*/
public static void OpenAppActivity(Context context, String packname, String activityPath) {
if (!checkPackInfo(context, packname)) {
Toast.makeText(context, "没有安装" + packname, Toast.LENGTH_SHORT).show();
return;
}
Intent intent = new Intent();
try {
intent.setClassName(packname, activityPath);
context.startActivity(intent);
} catch (Exception e) {
//TODO 可以在这里提示用户没有安装应用或找不到指定Activity,或者是做其他的操作
Toast.makeText(context, "未找到指定页面" + activityPath, Toast.LENGTH_SHORT).show();
}
}
/**
* 检查包是否存在
*
* @param packname
* @return
*/
public static boolean checkPackInfo(Context context, String packname) {
PackageInfo packageInfo = null;
try {
packageInfo = context.getPackageManager().getPackageInfo(packname, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return packageInfo != null;
}
}