大家好,欢迎来到IT知识分享网。
Android11适配已安装应用列表
之前做过已安装应用列表的适配,最近国内版SDK升级到33和隐私合规遇到很多问题,于是把已安装应用列表记录一下:
1、在Android11及以上的适配:
package com.example.requestinsttallapplistdemo import android.annotation.SuppressLint import android.content.Context import android.content.pm.ApplicationInfo / * @author:njb * @date: 2023/12/3 20:36 * @desc:描述 / object Utils {
/ * 获取手机已安装应用列表 * @param context * @return */ @SuppressLint("QueryPermissionsNeeded") fun getAllApps(context: Context): List<String> {
val apps: MutableList<String> = ArrayList() val packageManager = context.packageManager // 获取手机内所有应用 val packList = packageManager.getInstalledApplications(0) var i = 0 val len = packList.size while (i < len) {
val pak = packList[i] // if()里的值如果<=0则为自己装的程序,否则为系统工程自带 if (pak.flags and ApplicationInfo.FLAG_SYSTEM <= 0) {
// 添加自己已经安装的应用程序 apps.add(pak.packageName) } i++ } return apps } }
2、添加获取所有应用列表权限:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" /> <uses-permission android:name="android.permission.GET_TASKS"/>
3、通过包名查找:
这里以、wx登录等为例:
<queries> <package android:name="com.tencent.mobile" /> <package android:name="com.tencent.tim" /> <package android:name="com.tencent.mm"/> <package android:name="com.tencent.minihd." /> <package android:name="com.tencent.lite" /> </queries> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.blowing.demo" <queries> <intent> <action android:name="android.intent.action.SEND"/> <data android:mimeType="image/png"/> </intent> </queries> </manifest>
4、简单调用:
package com.example.requestinsttallapplistdemo import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) initData() } private fun initData() { Utils.getAllApps(this) } }
5、实现效果如下:
6、demo源码地址如下:
https://gitee.com/jackning_admin/install-applist-demo
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154141.html