Android 獲取手機(jī)已安裝的應(yīng)用列表

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ù),下面就直接通過(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è)小問題,在掃描所有應(yīng)用的時(shí)候吃型,Intent的action 是:Intent.ACTION_MAIN 切記证鸥,否則一個(gè)也查不到,
還有,可能你通過(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)用

2膜赃、通過(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ì)遇到掃描不到的問題哦疲眷。

3、通過(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)用列表一樣您朽,其他的都沒什么需要注意的了狂丝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哗总,隨后出現(xiàn)的幾起案子几颜,更是在濱河造成了極大的恐慌,老刑警劉巖讯屈,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛋哭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡耻煤,警方通過(guò)查閱死者的電腦和手機(jī)具壮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哈蝇,“玉大人棺妓,你說(shuō)我怎么就攤上這事∨谏猓” “怎么了怜跑?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吠勘。 經(jīng)常有香客問我性芬,道長(zhǎng),這世上最難降的妖魔是什么剧防? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任植锉,我火速辦了婚禮,結(jié)果婚禮上峭拘,老公的妹妹穿的比我還像新娘俊庇。我一直安慰自己狮暑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布辉饱。 她就那樣靜靜地躺著搬男,像睡著了一般。 火紅的嫁衣襯著肌膚如雪彭沼。 梳的紋絲不亂的頭發(fā)上缔逛,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音姓惑,去河邊找鬼褐奴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挺益,可吹牛的內(nèi)容都是我干的歉糜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼望众,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼匪补!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起烂翰,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤夯缺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后甘耿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踊兜,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年佳恬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捏境。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡毁葱,死狀恐怖垫言,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情倾剿,我是刑警寧澤筷频,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站前痘,受9級(jí)特大地震影響凛捏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芹缔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一坯癣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧最欠,春花似錦坡锡、人聲如沸蓬网。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至吵取,卻和暖如春禽额,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背皮官。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工脯倒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捺氢。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓藻丢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親摄乒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悠反,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容