Android11适配已安装应用列表

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、通过包名查找:

这里以QQ、wx登录等为例:

<queries>
    <package android:name="com.tencent.mobileqq" />
    <package android:name="com.tencent.tim" />
    <package android:name="com.tencent.mm"/>
    <package android:name="com.tencent.minihd.qq" />
    <package android:name="com.tencent.qqlite" />
</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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win11安装Android应用,需要通过Microsoft Store上的新功能"Android应用支持"实现。在Win11系统中,用户可以从Microsoft Store下载安装Android应用。 首先,用户需要打开Microsoft Store应用商店。在搜索栏中输入想要安装Android应用的名称,然后点击搜索按钮进行搜索。搜索结果中会显示与关键词相关的应用程序。 接下来,用户可以选择想要安装Android应用,并点击它的图标进行查看。在应用的详细页面中,可以了解应用的描述、标签、评级以及其他用户的评论。用户可以根据自己的需求和偏好来确定是否要安装应用。 如果用户决定安装应用,只需点击页面上的"获取"或"安装"按钮。应用会自动下载并安装到Win11系统中。用户可以在安装过程中查看进度,并等待安装完成。 安装完成后,用户可以在Win11系统的开始菜单、任务栏、或桌面快捷方式中找到已安装Android应用。点击相应的图标即可打开应用,并开始使用它。 需要注意的是,虽然Win11具有兼容运行Android应用的功能,但并非所有的Android应用都能完美适配Win11系统。某些应用可能会出现界面显示不正常、功能受限或不可使用等问题。用户在安装前可以查看相关的用户评论和评级,了解其他用户对该应用在Win11上的兼容性评价。 总的来说,Win11安装Android应用的过程相对简单,只需通过Microsoft Store搜索、选择、安装即可。用户可以根据自己的需求和喜好,体验更丰富的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值