Android11适配已安装应用列表

Android11适配已安装应用列表

之前做过已安装应用列表的适配,最近国内版SDK升级到33和隐私合规遇到很多问题,于是把已安装应用列表记录一下:

1、在Android11及以上的适配:

package com.example.requestinsttallapplistdemoimport 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 = 0val len = packList.sizewhile (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.requestinsttallapplistdemoimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundleclass 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/245283.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全部免费!6个宝藏级别的AI网站!

专注AIGC领域的专业社区&#xff0c;关注百度文心一言等大语言模型&#xff08;LLM&#xff09;的发展和应用落地&#xff0c;关注LLM的基准评测和市场研究&#xff0c;欢迎关注&#xff01; 前两天给大家介绍了一款AI绘图工具fooocus&#xff0c;帮大家把AI绘画的使用门槛大幅…

Springboot养老院信息管理系统的开发-计算机毕设 附源码 27500

Springboot养老院信息管理系统的开发 摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;…

打印机文档被挂起无法打印怎么办?分享5个常见解决方法!

“我需要打印一份比较紧急的文件&#xff0c;但是当我需要用到打印机时&#xff0c;却发现打印机显示文档被挂起&#xff0c;根本就无法打印。这是为什么呢&#xff1f;我怎么解决打印机文档被挂起的问题呢&#xff1f;” 在我们的工作和学习中&#xff0c;可能经常需要使用打印…

语义分割网络FCN

语义分割是一种像素级的分类&#xff0c;输出是与输入图像大小相同的分割图&#xff0c;输出图像的每个像素对应输入图像每个像素的类别&#xff0c;每一个像素点的灰度值都是代表当前像素点属于该类的概率。 语义分割任务需要解决的是如何把定位和分类这两个问题一起解决&…

Python函数的基本使用(一)

Python函数的基本使用&#xff08;一&#xff09; 一、函数概述二、函数的定义2.1 函数的语法2.2 语法说明2.3 函数定义的方式2.4 总结 三、函数的调用3.1 函数调用语法3.2 语法说明3.3 函数调用 四、函数的参数4.1 参数的分类4.2 必需参数4.3 默认值参数4.4 关键字参数4.5 不定…

【网络安全】虚假IP地址攻击如何防范?

在当今的网络时代&#xff0c;虚假IP地址攻击已成为一种新型的网络攻击方式&#xff0c;给网络安全带来了极大的威胁。那么&#xff0c;什么是虚假IP地址攻击&#xff1f;又如何进行溯源和防范呢&#xff1f;本文将为您揭开这一神秘面纱。 一、虚假IP地址攻击概述 虚假IP地址攻…

访问nginx报错404 Not Found nginx/1.24.0

问题引入 在Linux安装nginx&#xff0c;将其端口修改为非80端口后&#xff0c;在浏览器访问nginx报错404 Not Found nginx/1.24.0 解决方案 在/etc/nginx/nginx.conf配置文件中加入如下代码 location / {root /usr/share/nginx/html; # 静态文件的根目录index index.html …

无人机管控平台:打破通信限制 助力灾害救援

中国地域广阔&#xff0c;自然灾害频发&#xff0c;时常对通信基础设施造成破坏&#xff0c;传统无人机在紧急救援中受限。为有效解决这一问题&#xff0c;新一代无人机技术与应急通信系统融合形成无人机管控平台&#xff0c;不仅提供了高效的空中监测技术&#xff0c;还配备先…

了解大模型 RAG (Retrieval-Augmented Generation):大模型外挂知识库 (检索增强技术)

本心、输入输出、结果 文章目录 了解大模型 RAG &#xff08;Retrieval-Augmented Generation&#xff09;&#xff1a;大模型外挂知识库 &#xff08;检索增强技术&#xff09;前言什么是检索增强技术 RAG &#xff08;Retrieval-Augmented Generation&#xff09;检索增强技术…

Python基础学习

基础语法 字面量 什么是字面量&#xff1a; 在代码中&#xff0c;被写下来的固定的值&#xff0c;称为字面量 | 类型 | 描述 | 说明 | | — | — | — | | 数组&#xff08;Number&#xff09; | 整数 int | 整数 | | | 浮点型 float | 浮点数 | | | 复数 complex | 复数 如 …

力扣543. 二叉树的直径(java DFS解法)

Problem: 543. 二叉树的直径 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们…

JAVA全栈开发 day16_MySql01

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…