1. 程式人生 > >Android檢測手機是否安裝某個應用

Android檢測手機是否安裝某個應用

判斷手機已安裝某程式的方法:

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); 
      }