概述
为了增加用户体验,可能要求在一个APP中打开另外一个APP的需求,一般分为三种:
显式调用跳转
隐式调用跳转
URL Scheme跳转
代码
用到的一些公共方法,当打开APP时,检测到第三方APP没安装时调到应用市场进行下载,应用市场找不到相应的APP就跳转到系统浏览器进行下载。
/**
* 判断apk是否安装
*
* @param context
* @return
*/
public static boolean isAppInstalled(Context context, String packageName) {
PackageManager pm = context.getPackageManager();
try {
pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
/**
* 通过包名 在应用商店打开应用
*
* @param context 上下文
* @param packageName 包名
* @param url 下载App的官方链接
*/
public void openApplicationMarket(Context context, String packageName, String url) {
try {
String str = "market://details?id=" + packageName;
Intent localIntent = new Intent(Intent.ACTION_VIEW);
localIntent.setData(Uri.parse(str));
context.startActivity(localIntent);
} catch (Exception