繁体   English   中英

如何以编程方式检查 Android 中是否安装了应用程序?

[英]How to check programmatically if an application is installed or not in Android?

我们已经以编程方式安装了应用程序。

  1. 如果该应用程序已安装在设备中,则该应用程序会自动打开。
  2. 否则安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

我们已经以编程方式安装了应用程序。

  1. 如果应用程序已经安装在设备中,则该应用程序将自动打开。
  2. 否则,请安装特定的应用程序。

引导我。 我不知道。 谢谢。

安卓 11 更新
您必须在清单中指定要搜索的确切捆绑包 ID。

facebook 和 whatsapp 的示例:

在“应用程序”上方的清单内(权限所在)

<queries>
    <package android:name="com.whatsapp" />
    <package android:name="com.facebook.katana" />
</queries>  

这将允许您检查是否安装了 facebook 和 whatsapp,否则您将始终得到错误的检查。

关于该主题的进一步阅读:
https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9

Kotlin中,最简单的方法可以是两步

1- 在 Manifest 中放置目标应用程序 ID ex (com.src.turkey)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <queries>
        <package android:name="com.src.turkey" />
               </queries>
...

2- 在活动中

 try {

 val list = packageManager.getLaunchIntentForPackage("com.src.turkey")
        if (list != null) {
            Log.i("TAG", "downloadApps:$list")
        }

    } catch (e: PackageManager.NameNotFoundException) {
        Log.i("TAG", "downloadApps: False")
    }

没有任何弃用的,例如

queryIntentActivities

pm.getPackageInfo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM