Android檢測手機是否安裝某個應用
阿新 • • 發佈:2018-12-27
判斷手機已安裝某程式的方法:
private boolean isAvilible(Context context, String packageName){ final PackageManager packageManager = context.getPackageManager();//獲取packagemanager List< packageInfo> pinfo = packageManager.getInstalledPackages(0);//獲取所有已安裝程式的包資訊 List<String> pName = new ArrayList<String>();//用於儲存所有已安裝程式的包名 //從pinfo中將包名字逐一取出,壓入pName list中 if(pinfo != null){ for(int i = 0; i < pinfo.size(); i++){ String pn = pinfo.get(i).packageName; pName.add(pn); } } return pName.contains(packageName);//判斷pName中是否有目標程式的包名,有TRUE,沒有FALSE }
判斷後的邏輯:
//已安裝,開啟程式,需傳入引數包名:"com.tencent.mm" if(isAvilible(this, "com.skype.android.verizon")){ Intent i = new Intent(); ComponentName cn = new ComponentName("com.tencent.mm", "com.tencent.mm.WeiXinActivity"); i.setComponent(cn); startActivityForResult(i, RESULT_OK); } //未安裝,跳轉至market下載該程式 else { Uri uri = Uri.parse("market://details?id=com.tencent.mm");//id為包名 // 直接從指定網址下載 // Uri uri = Uri.parse("http://dldir1.qq.com/foxmail/weixin521android400.apk"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); }