2015-07-20 108 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

相关问题