java - 检查 Android 应用是否已安装,第二次检查时返回错误

标签 java android

我想检查是否使用此代码安装了 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

最佳答案

试试这个代码;

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

关于java - 检查 Android 应用是否已安装,第二次检查时返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55880765/

相关文章:

java - Java 堆空间用完- 15 谜题

java - 方法不会重写或实现父类(super class)型 ExoPlayer 中的方法

android - 当我的 Activity 发生变化或破坏时,如何阻止 ASyncTask 崩溃?

java - 使用soot比较两个apk文件的调用图

java - 仅通过 Android Studio 中的 Intent 打开电子邮件应用程序

java - 在多行 JTextField 中更改光标垂直对齐方式

java - Standalone Java 客户端如何获取 Wildfly 初始上下文?

java - 如何找到正在执行的 ant 目标的名称?

java - Json类型不匹配: Cannot convert to string

android - 如何让应用程序以全屏模式运行?