【问题标题】:How to get a list of installed apps in Android 11如何在 Android 11 中获取已安装应用程序的列表
【发布时间】:2023-03-08 10:52:01
【问题描述】:
【问题讨论】:
标签:
android
android-package-managers
android-11
android-update-app
【解决方案1】:
在 Android 11 中有 3 种不同的方式来查询用户已安装的应用程序。
- 如果您已经知道要查询哪些应用程序,只需提及
<queries> 元素中的包名称
AndroidManifest。
<manifest package="com.nikit.app">
<queries>
<package android:name="com.fake.app" />
<package android:name="com.fake.game" />
</queries>
...
</manifest>
- 如果您不知道您安装的应用程序的所有软件包名称
想查询,但有一组具有类似功能的应用程序
你想查询然后你可以在里面使用一个意图过滤器
<queries> 元素根据您的要求,就像它一样
在下面的代码 sn-p 中完成。
<manifest package="com.nikit.app">
<queries>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/jpeg" />
</intent>
</queries>
...
</manifest>
<intent> 元素看起来像<intent-filter>,但几乎没有区别。元素有以下限制:
-
<intent> 元素只能有一个 <action> 元素。
- 元素只能有以下属性:
mimeType,
scheme 和 host。
- 如果你想像以前一样查询用户的所有应用
之前,您需要在
AndroidManifest。这是一个normal 权限,它会尽快被授予
随着应用的安装。
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
【讨论】:
-
谢谢@shirley!但我有一个疑问,根据开发者网站 QUERY_ALL_PACKAGES 不推荐link,有什么副作用吗?
-
hi@ajay bisaveni,关于这个也许你可以参考这个link