最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android?獲取手機(jī)已安裝的應(yīng)用列表實(shí)現(xiàn)詳解

 更新時(shí)間:2023年08月03日 14:30:00   作者:清朝公主大清正黃旗  
這篇文章主要介紹了Android?獲取手機(jī)已安裝的應(yīng)用列表的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1、掃描已安裝的應(yīng)用列表

var queryIntentActivities = mutableListOf<ResolveInfo>()
        val intent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER)
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
            queryIntentActivities =
                packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL)
        } else {
            queryIntentActivities = packageManager.queryIntentActivities(intent, 0)
        }

上面代碼中,queryIntentActivities 就是獲取的應(yīng)用列表數(shù)據(jù)

遍歷獲取每個(gè)應(yīng)用的信息

下面就直接通過(guò)遍歷獲取每個(gè)應(yīng)用的信息了

queryIntentActivities.forEach {
            bean = AppInfoBean(
                icon = it.loadIcon(packageManager),
                appName = it.loadLabel(packageManager).toString(),
                appPackageName = it.activityInfo.applicationInfo.packageName
            )
            appBeanList.add(bean!!)
        }

上面 AppInfoBean 是自己定義的實(shí)體bean 里面有應(yīng)用的名稱,包名,還有Drawable 類型的應(yīng)用icon
appBeanList 是定義的list變量,

注意:這里提個(gè)醒,也是我遇到的一個(gè)小問(wèn)題,在掃描所有應(yīng)用的時(shí)候,Intent的action 是:Intent.ACTION_MAIN 切記,否則一個(gè)也查不到,

添加權(quán)限

還有,可能你通過(guò)上面獲取的應(yīng)用列表只有幾個(gè),不全,此時(shí),你需要添加一個(gè)權(quán)限:

<uses-permission
        android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />

有了上面這個(gè)權(quán)限,你才能獲取到所有的應(yīng)用

通過(guò)包名查詢對(duì)應(yīng)應(yīng)用的圖標(biāo)icon

    /**
     * 根據(jù)應(yīng)用包名,查應(yīng)用的icon圖
     */
    private fun loadAppIconByPackageName(packageName:String,listener:(icon:Drawable) -> Unit){
        try {
            if (packageManager == null){
                packageManager = BaseApp.myApp.packageManager
            }
            val packageInfo = packageManager?.getPackageInfo(
                packageName,
                PackageManager.GET_ACTIVITIES
            )
            packageInfo?.applicationInfo?.loadIcon(packageManager)?.let { listener.invoke(it) }
        } catch (e: Exception) {
            listener.invoke(BaseApp.myApp.resources.getDrawable(R.mipmap.ic_launcher))
        }
    }

這個(gè)就簡(jiǎn)單了,獲取當(dāng)前的packageManager 就可以進(jìn)行獲取對(duì)應(yīng)的icon了,不過(guò)這個(gè)跟上面獲取應(yīng)用一樣,也需要權(quán)限和否則可能也會(huì)遇到掃描不到的問(wèn)題哦。

通過(guò)包名獲取對(duì)應(yīng)應(yīng)用的啟動(dòng)頁(yè)的全類名

/**
  * 通過(guò)包名獲取app的入口activity
  */
 @SuppressLint("WrongConstant")
 fun getAppEnter(context: Context, packageName: String): String {
     var mainAct = ""
     try {
         val intent = Intent().apply {
             action = Intent.ACTION_MAIN
             addCategory(Intent.CATEGORY_LAUNCHER)
         }
         val list =
             context.packageManager.queryIntentActivities(intent, PackageManager.GET_ACTIVITIES)
         list.forEach {
             if (TextUtils.equals(it.activityInfo.packageName, packageName)) {
                 mainAct = it.activityInfo.name
             }
         }
     } catch (ex: Exception) {
     } finally {
         return mainAct
     }
 }

這個(gè)需要注意的事項(xiàng)和第一個(gè)獲取應(yīng)用列表一樣,其他的都沒(méi)什么需要注意的了。

以上就是Android 獲取手機(jī)已安裝的應(yīng)用列表實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Android 獲取應(yīng)用列表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android實(shí)現(xiàn)圖片文字識(shí)別

    Android實(shí)現(xiàn)圖片文字識(shí)別

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖片文字識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Android布局技巧之使用ViewStub

    Android布局技巧之使用ViewStub

    這篇文章主要為大家詳細(xì)介紹了Android布局技巧之使用ViewStub,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android實(shí)現(xiàn)閱讀進(jìn)度記憶功能

    Android實(shí)現(xiàn)閱讀進(jìn)度記憶功能

    這篇文章主要介紹了Android實(shí)現(xiàn)閱讀進(jìn)度記憶功能,Android控件WebView實(shí)現(xiàn)保存閱讀進(jìn)度,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • android實(shí)現(xiàn)session保持簡(jiǎn)要概述及實(shí)現(xiàn)

    android實(shí)現(xiàn)session保持簡(jiǎn)要概述及實(shí)現(xiàn)

    其實(shí)sesion在瀏覽器和web服務(wù)器直接是通過(guò)一個(gè)叫做name為sessionid的cookie來(lái)傳遞的,所以只要在每次數(shù)據(jù)請(qǐng)求時(shí)保持sessionid是同一個(gè)不變就可以用到web的session了,感興趣的你可以參考下本文或許對(duì)你有所幫助
    2013-03-03
  • Android中使用ListView實(shí)現(xiàn)漂亮的表格效果

    Android中使用ListView實(shí)現(xiàn)漂亮的表格效果

    這篇文章主要介紹了Android中使用ListView實(shí)現(xiàn)漂亮的表格效果,本文用詳細(xì)的代碼實(shí)例創(chuàng)建了一個(gè)股票行情表格,需要的朋友可以參考下
    2014-10-10
  • Android使用ContentResolver搜索手機(jī)通訊錄的方法

    Android使用ContentResolver搜索手機(jī)通訊錄的方法

    這篇文章主要介紹了Android使用ContentResolver搜索手機(jī)通訊錄的方法,結(jié)合實(shí)例形式分析了Android中ContentResolver操作手機(jī)通訊錄的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-01-01
  • Android自定義View實(shí)現(xiàn)公交成軌跡圖

    Android自定義View實(shí)現(xiàn)公交成軌跡圖

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)公交成軌跡圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android自定義View旋轉(zhuǎn)圓形圖片

    Android自定義View旋轉(zhuǎn)圓形圖片

    這篇文章主要為大家詳細(xì)介紹了Android自定義View旋轉(zhuǎn)圓形圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android View事件分發(fā)和消費(fèi)源碼簡(jiǎn)單理解

    Android View事件分發(fā)和消費(fèi)源碼簡(jiǎn)單理解

    這篇文章主要介紹了Android View事件分發(fā)和消費(fèi)源碼簡(jiǎn)單理解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Android實(shí)現(xiàn)漂亮的Gallery畫廊

    Android實(shí)現(xiàn)漂亮的Gallery畫廊

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)漂亮的Gallery畫廊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論

治多县| 化州市| 华宁县| 进贤县| 错那县| 安新县| 微山县| 通许县| 芒康县| 固原市| 东丽区| 昌乐县| 樟树市| 连州市| 民权县| 孝感市| 灵川县| 沁阳市| 铜鼓县| 浑源县| 嘉义县| 普兰县| 宝兴县| 开封县| 新乐市| 仲巴县| 营口市| 聂拉木县| 揭东县| 方山县| 吴旗县| 益阳市| 福鼎市| 乌兰县| 东乌珠穆沁旗| 中方县| 区。| 万载县| 遵义市| 临安市| 甘泉县|