GitHub源码
根据包名启动应用
private void startAppByPkgName(String pkgName){
Intent intent =null;
intent = mContext.getPackageManager().getLaunchIntentForPackage(pkgName);
if(intent != null){
mContext.startActivity(intent);
}
}
根据Uri启动应用
/**
* 打开应用
* @param activity
* @param intent
*/
public static boolean openApp(Activity activity, Intent intent) {
try {
activity.startActivityIfNeeded(intent, -1);
return true;
} catch (ActivityNotFoundException ex) {
ex.printStackTrace();
} catch (SecurityException ex) {
ex.printStackTrace();
}
return false;
}
/**
* 通过url启动应用
* @param activity
*/
public static boolean startActivityByUrl(Activity activity){
String url = "vipshop://goHome?f=fx&tra_from=tra%3Awvpeo8om%3Anm5fj2y6%3Aq15uwfdz%3Agtpgmchu%3A%3A4gl0mmyi%3A%3A3739c1c4dd4d4e78889982e23609e056";
Intent intent = null;
try {
intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
} catch (URISyntaxException e) {
e.printStackTrace();
}
if(activity.getPackageManager().resolveActivity(intent, 0) != null){
return openApp(activity, intent);
}else{
String packagename = intent.getPackage();
if (packagename != null) {
intent = new Intent(Intent.ACTION_VIEW, Uri
.parse("market://search?q=pname:" + packagename));
intent.addCategory(Intent.CATEGORY_BROWSABLE);
try {
activity.startActivity(intent);
} catch (ActivityNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return true;
} else {
return false;
}
}
}