Android 应用的启动模式分为两种,一种是通过启动器(Launcher)启动,另一种是通过Intent消息启动.
如果在通过Intent 消息启动前,希望判断欲启动的应用是否已经安装,
目前有两种方法可以检测相关的信息,一种是检测相关的UI组件是否存在,另一种是检测安装包是否存在.
检测组件是否存在的方法如下:
Intent intent = new Intent();
intent.setClassName(pluginPackgeName,pluginPackageName+".EngineSettings");
PackageManager pm = getPackageManager();
//检测Activity
ResolveInfo bestMatch = pm.resolveActivity(intent,PackageManage.MATH_DEFAULT_ONLY);
检测安装包是否存在的方法同样是基于PackageManage进行的, 具体如下:
public abstract PackageInfo getPackageInfo(String packageName,int flags)
如果安装的应用体验不佳,就要进行卸载操作,方法如下:
Uri uri = Uri.fromParts("package",packageName,null);
//packageName为包名,比如 com.xxx.apkInstaller
startActivity(it);
另外,通过adb 命令也能启动应用,方法如下:
#adb shell am start -n com.xxx.test/.MainActivity
摘自:<<深入Android应用开发>>核心技术解析与最佳实践