本文主要是介绍Android App安装列表获取方法(实践方案),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl...
前言
Android 系统在 Android11时,对获取app列表方案做了很大调整,需要对Android 11上下版本兼容,尤其是Andjsroid15上做出了大的变动。
实现方案
方案概述
&nbshttp://www.chinasem.cnp; 获取app安装列表,主要有两个地方代码需要配置:
一、在AndroidManifest.XML中添加配置,配置分为权限、白名单、action 三种
二、在使用前面任意一种配置后,通过API(Java or Kotlin代码)获取安装列表,也有两种API可使用
一、 AndroidManifest 三种配置方式
1、方案一(权限:不建议使用)
权限配置: <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
2、方案二(白名单:如果白名单在1000以内,建议使用,1000及以上不建议使用)
<manifest > <queries> <package android:name="com.google.gson"/> </queries> <manifest >
3、方案三(action:建议使用)
<queries> <intent> <action android:name="android.intent.action.MAIN"/> </intent> <intent> <action android:name="com.appsflyer.referrer.INSTALL_PROVIDER"/> </intent> <intent> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="https"/> </intent> <intent> <action android:name="android.support.customtabs.action.CustomTabsService"/> </intent> <intent> <action android:name="android.intent.action.DIAL"/> </intent> </queries>
二、API代码 js
1、方案一(已废弃方案,Android15以下)
PackageManager.getInstalledPackages
优点:
- 配合权限可以获取手机全部安装列表 。
- 配合action可获取到大部分已安装app(个别系统应用获取不到)
缺点:
- 部分类型应用,google禁止使用QUERY_ALL_PACKAGES权限,如果app内添加此权限,js会被拒绝上架,例如:金融类型app。
- Android15开始 +getInstalledPackagesAPI 获取不到除app本身外的任何已安装app。
- Android15对白名单package开始限制在1000以内,超过这个数量,手机无法安装应用。(用于不添加权限)eg:
<manifest > China编程 <queries> <package android:name="com.google.gson"/> </queries> <manifest >
4.Android11开始,google play 不再建议使用这种方式,Android 15开始这个api通过action方式获取不到app列表了,
2、方案二 (建议使用,但获取到的app列表比较少,大部分非系统应用都可以获取,超过半数的系统应用获取不到),与action配合使用,也可以action与白名单混合使用
PackageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
优点:
没有系统适配的限制
缺点:
获取到的列表不全
总结
- 如果可以使用权限,则使用权限+getInstalledPackages 方案没有问题。
- 如果不可以使用权限,需要查询的白名单少,可以使用 Manifest第二种配置方案+getInstalledPackages
- 如果白名单超过了999个包名,则建议使用 action方式+白名单+queryIntentActivities方式
到此这篇关于Android App安装列表获取的文章就介绍到这了,更多相关Android App安装列表获取内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于Android App安装列表获取方法(实践方案)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!