【问题标题】:Check if Android app is installed returns an error when checking a second time检查是否安装了 Android 应用程序在第二次检查时返回错误
【发布时间】:2019-04-27 21:15:50
【问题描述】:

我想检查是否使用此代码安装了 Android 应用:

if (isAppInstalled("com.anydo")) {
    textview3.setText("TRUE");
} else {
    textview3.setText("FALSE");
}
private boolean isAppInstalled(String uri) {
    android.content.pm.PackageManager pm = getPackageManager();

    try {
        pm.getPackageInfo(uri, android.content.pm.PackageManager.GET_ACTIVITIES);
        return true;
    } catch (android.content.pm.PackageManager.NameNotFoundException e) {}
    return false;
}

它确实有效,但我想再次检查一个应用程序,我使用相同的 if 代码,但它返回错误。

我正在使用这个if(isAppInstalled("com.anydo")) {} else {}

如何解决?

我的示例代码:https://drive.google.com/file/d/1B1ypjgxSLOO7Hvm2tgmPK65obujZR381/view?usp=drivesdk

我的错误代码:https://drive.google.com/file/d/1B4jtcxGPp2O4qIbKGya18EmHegEXd4ZX/view?usp=drivesdk

【问题讨论】:

  • 如果您显示实际错误会很棒

标签: java android


【解决方案1】:

试试这个代码;

 public static boolean isAppInstalled(Context context, String packageName) {
        try {
            return context.getPackageManager().getApplicationInfo(packageName, 0).enabled;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }

【讨论】:

  • 这个可以再检查一个条件吗?
猜你喜欢
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
相关资源
最近更新 更多