亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android App安裝列表獲取方法(實(shí)踐方案)

 更新時(shí)間:2025年03月20日 12:06:10   作者:JiaoJunfeng  
文章介紹了Android 11及以上版本獲取應(yīng)用列表的方案調(diào)整,包括權(quán)限配置、白名單配置和action配置三種方式,并提供了相應(yīng)的Java和Kotlin代碼示例,建議在Android 15及以上版本中使用action方式獲取應(yīng)用列表,感興趣的朋友一起看看吧

前言

Android 系統(tǒng)在 Android11時(shí),對獲取app列表方案做了很大調(diào)整,需要對Android 11上下版本兼容,尤其是Android15上做出了大的變動(dòng)。

實(shí)現(xiàn)方案         

方案概述

                獲取app安裝列表,主要有兩個(gè)地方代碼需要配置:

                一、在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)點(diǎn):

  • 配合權(quán)限可以獲取手機(jī)全部安裝列表 。
  • 配合action可獲取到大部分已安裝app(個(gè)別系統(tǒng)應(yīng)用獲取不到)         

缺點(diǎn):

  • 部分類型應(yīng)用,google禁止使用QUERY_ALL_PACKAGES權(quán)限,如果app內(nèi)添加此權(quán)限,會(huì)被拒絕上架,例如:金融類型app。
  • Android15開始 +getInstalledPackagesAPI 獲取不到除app本身外的任何已安裝app。
  • Android15對白名單package開始限制在1000以內(nèi),超過這個(gè)數(shù)量,手機(jī)無法安裝應(yīng)用。(用于不添加權(quán)限)eg:
<manifest >
        <queries>
                 <package android:name="com.google.gson"/> 
        </queries>
<manifest >

4.Android11開始,google play 不再建議使用這種方式,Android 15開始這個(gè)api通過action方式獲取不到app列表了,

2、方案二 (建議使用,但獲取到的app列表比較少,大部分非系統(tǒng)應(yīng)用都可以獲取,超過半數(shù)的系統(tǒng)應(yīng)用獲取不到),與action配合使用,也可以action與白名單混合使用

 PackageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL);

         優(yōu)點(diǎn):

        沒有系統(tǒng)適配的限制

        缺點(diǎn):

        獲取到的列表不全

總結(jié)

  • 如果可以使用權(quán)限,則使用權(quán)限+getInstalledPackages 方案沒有問題。
  • 如果不可以使用權(quán)限,需要查詢的白名單少,可以使用 Manifest第二種配置方案+getInstalledPackages
  • 如果白名單超過了999個(gè)包名,則建議使用 action方式+白名單+queryIntentActivities方式

到此這篇關(guān)于Android App安裝列表獲取的文章就介紹到這了,更多相關(guān)Android App安裝列表獲取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論