2015-07-20 116 views
0

在我的程序中檢查是否安裝了OpenCV Manager應用程序。我的想法從this answer,這裏是我的代碼:Android檢查安裝的應用程序失敗

public static boolean isAppInstalled(Context cnt, String packName) { 
    PackageManager pm = cnt.getPackageManager(); 
    try { 
     pm.getPackageInfo(packName, PackageManager.GET_ACTIVITIES); 
    } 
    catch (PackageManager.NameNotFoundException e) { 
     return false; 
    } 
    return true; 
} 

它是從呼叫:

private boolean isOpenCVInstalled() { 
    return GlobalFunctions.isAppInstalled(this, "org.opencv.engine"); 
} 

在我的手機和平板電腦能正常工作。但在Samsung Galaxy Xcover 3手機它總是返回true,所以在OpenCV相機預覽形式我得到package not found, install?消息和file not found接受安裝。

星系手機有什麼問題?或者用我的代碼?

UPDATE

This link讓我傷心。這是否意味着沒有解決方案?

回答

0

好吧,我相信this link

現在我的解決方案並不重要。我在Activity類的靜態部分將OpenCV初始化由initAsync更改爲initDebug。我有OpenCV庫項目鏈接到我的項目,所以它適用於我。

0

此方法適用於我:

public boolean isAppInstalled(Context ctx,String packageName) { 
      PackageManager pm = ctx.getPackageManager(); 
      List<ApplicationInfo> apps = pm 
        .getInstalledApplications(PackageManager.GET_META_DATA); 

      for (ApplicationInfo app : apps) { 
       if (app.packageName.equals(packageName)) { 
        return true; 
       } 
      } 
      return false; 
     } 
+0

這是相反的情況 - 它總是'錯誤'。 – Ircover

相關問題