1、首先,获取应用中所有程序的安装包信息,收集在集合中,然后进行循环判断:
private boolean isAvilible( Context context, String packageName ){
final PackageManager packageManager = context.getPackageManager();
// 获取所有已安装程序的包信息
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
for ( int i = 0; i < pinfo.size(); i++ )
{
// 循环判断是否存在指定包名
if(pinfo.get(i).packageName.equalsIgnoreCase(packageName)){
return true;
}
}
return false;
}
2、然后,启动或安装:
if(isAvilible(MainActivity.this, "com.tencent.mm")){
Intent i = new Intent(); //启动指定包名应用
ComponentName cn = new ComponentName("com.tencent.mm",
"com.tencent.mm.WeiXinActivity");
i.setComponent(cn);
startActivityForResult(i, RESULT_OK);
} else {
Uri uri = Uri.parse("market://details?id=com.tencent.mm");//市场下载
// 直接从指定网址下载
// Uri uri = Uri.parse("http://dldir1.qq.com/foxmail/weixin521android400.apk");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
}