Android App安裝列表獲取方法(實踐方案)
前言
Android 系統(tǒng)在 Android11時,對獲取app列表方案做了很大調整,需要對Android 11上下版本兼容,尤其是Android15上做出了大的變動。
實現(xiàn)方案
方案概述
獲取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代碼
1、方案一(已廢棄方案,Android15以下)
PackageManager.getInstalledPackages
優(yōu)點:
- 配合權限可以獲取手機全部安裝列表 。
- 配合action可獲取到大部分已安裝app(個別系統(tǒng)應用獲取不到)
缺點:
- 部分類型應用,google禁止使用QUERY_ALL_PACKAGES權限,如果app內添加此權限,會被拒絕上架,例如:金融類型app。
- Android15開始 +getInstalledPackagesAPI 獲取不到除app本身外的任何已安裝app。
- Android15對白名單package開始限制在1000以內,超過這個數(shù)量,手機無法安裝應用。(用于不添加權限)eg:
<manifest >
<queries>
<package android:name="com.google.gson"/>
</queries>
<manifest >4.Android11開始,google play 不再建議使用這種方式,Android 15開始這個api通過action方式獲取不到app列表了,
2、方案二 (建議使用,但獲取到的app列表比較少,大部分非系統(tǒng)應用都可以獲取,超過半數(shù)的系統(tǒng)應用獲取不到),與action配合使用,也可以action與白名單混合使用
PackageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
優(yōu)點:
沒有系統(tǒng)適配的限制
缺點:
獲取到的列表不全
總結
- 如果可以使用權限,則使用權限+getInstalledPackages 方案沒有問題。
- 如果不可以使用權限,需要查詢的白名單少,可以使用 Manifest第二種配置方案+getInstalledPackages
- 如果白名單超過了999個包名,則建議使用 action方式+白名單+queryIntentActivities方式
到此這篇關于Android App安裝列表獲取的文章就介紹到這了,更多相關Android App安裝列表獲取內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android?Flutter實現(xiàn)精靈圖的使用詳解
在游戲開發(fā)中,精靈圖會將一個人物所有動作放置在一張圖片中,通過坐標定位選取其中一張圖展示。本文就來教你如何使用精靈圖,感興趣的可以了解一下2022-08-08
ionic App 解決android端在真機上tab處于頂部的問題
這篇文章主要介紹了ionic App 解決android端在真機上tab處于頂部的問題的相關資料,需要的朋友可以參考下2017-06-06
Android 短信轉換成彩信的消息數(shù)量(實例代碼)
本文通過實例代碼給大家介紹了Android 短信轉換成彩信的消息數(shù)量,需要的朋友可以參考下2017-05-05
Android SQLite數(shù)據(jù)庫徹底掌握數(shù)據(jù)存儲
這篇文章主要介紹了 Android SQLite數(shù)據(jù)庫的相關資料,這里對Android SQLlite做了詳細介紹,需要的朋友可以參考下2016-10-10

