Android App安裝列表獲取方法(實踐方案)
前言
Android 系統(tǒng)在 Android11時,對獲取app列表方案做了很大調(diào)整,需要對Android 11上下版本兼容,尤其是Android15上做出了大的變動。
實現(xiàn)方案
方案概述
獲取app安裝列表,主要有兩個地方代碼需要配置:
一、在AndroidManifest.xml中添加配置,配置分為權(quán)限、白名單、action 三種
二、在使用前面任意一種配置后,通過API(Java or Kotlin代碼)獲取安裝列表,也有兩種API可使用
一、 AndroidManifest 三種配置方式
1、方案一(權(quán)限:不建議使用)
權(quán)限配置: <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
2、方案二(白名單:如果白名單在1000以內(nèi),建議使用,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)點:
- 配合權(quán)限可以獲取手機全部安裝列表 。
- 配合action可獲取到大部分已安裝app(個別系統(tǒng)應(yīng)用獲取不到)
缺點:
- 部分類型應(yīng)用,google禁止使用QUERY_ALL_PACKAGES權(quán)限,如果app內(nèi)添加此權(quán)限,會被拒絕上架,例如:金融類型app。
- Android15開始 +getInstalledPackagesAPI 獲取不到除app本身外的任何已安裝app。
- Android15對白名單package開始限制在1000以內(nèi),超過這個數(shù)量,手機無法安裝應(yīng)用。(用于不添加權(quán)限)eg:
<manifest >
<queries>
<package android:name="com.google.gson"/>
</queries>
<manifest >4.Android11開始,google play 不再建議使用這種方式,Android 15開始這個api通過action方式獲取不到app列表了,
2、方案二 (建議使用,但獲取到的app列表比較少,大部分非系統(tǒng)應(yīng)用都可以獲取,超過半數(shù)的系統(tǒng)應(yīng)用獲取不到),與action配合使用,也可以action與白名單混合使用
PackageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);
優(yōu)點:
沒有系統(tǒng)適配的限制
缺點:
獲取到的列表不全
總結(jié)
- 如果可以使用權(quán)限,則使用權(quán)限+getInstalledPackages 方案沒有問題。
- 如果不可以使用權(quán)限,需要查詢的白名單少,可以使用 Manifest第二種配置方案+getInstalledPackages
- 如果白名單超過了999個包名,則建議使用 action方式+白名單+queryIntentActivities方式
到此這篇關(guān)于Android App安裝列表獲取的文章就介紹到這了,更多相關(guān)Android App安裝列表獲取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android使用SkinManager實現(xiàn)換膚功能的示例
本篇文章主要介紹了android使用SkinManager實現(xiàn)換膚功能的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Android開發(fā)中方向傳感器定義與用法詳解【附指南針實現(xiàn)方法】
這篇文章主要介紹了Android開發(fā)中方向傳感器定義與用法,結(jié)合實例形式分析了Android方向傳感器的功能、定義與使用方法,并附帶基于方向傳感器實現(xiàn)指南針功能的方法,需要的朋友可以參考下2017-11-11
Android學(xué)習(xí)之使用SharedPreferences存儲應(yīng)用程序數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Android學(xué)習(xí)之使用SharedPreferences保存應(yīng)用程序數(shù)據(jù)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05
Android實現(xiàn)瘋狂連連看游戲之狀態(tài)數(shù)據(jù)模型(三)
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)瘋狂連連看游戲之狀態(tài)數(shù)據(jù)模型,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Kotlin 匿名類實現(xiàn)接口和抽象類的區(qū)別詳解
這篇文章主要介紹了Kotlin 匿名類實現(xiàn)接口和抽象類的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android自定義View實現(xiàn)繪制虛線的方法詳解
這篇文章主要給大家介紹了Android自定義View實現(xiàn)繪制虛線的方法,在繪制過程中走了一些彎路才實現(xiàn)了虛線的效果,所以想著總結(jié)分享出來,方便有需要的朋友和自己在需要的時候參考學(xué)習(xí),下面來一起看看吧。2017-04-04
Android開發(fā)設(shè)計nowinandroid構(gòu)建腳本學(xué)習(xí)
這篇文章主要為大家介紹了Android開發(fā)設(shè)計nowinandroid構(gòu)建腳本學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

