2025年3月27日 星期四 甲辰(龙)年 月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

Android 11获取第三方应用信息

时间:02-06来源:作者:点击数:52

Android 11之后禁止获取第三方应用信息了,比如想获取已安装的所有应用,如果目标版本设置为Android 11,则获取不到了,解决方案就是设置目标版本比Android 11小。如果设置目标版本为Android 11或更高,只能获取指定的应用的信息,在清单文件中声明要获取的应用的包名,如下:

  • <?xml version="1.0" encoding="utf-8"?>
  • <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  • xmlns:tools="http://schemas.android.com/tools">
  • <!--注:目标版本为Android 11时,要获取第三方应用的信息,必须在清单文件声明需要查看的应用的包名。-->
  • <queries>
  • <package android:name="cn.android666.example" />
  • </queries>
  • </manifest>

然后在代码中,就可以判断包名为"cn.android666.example"的应用是否安装,如下:

  • /**
  • * 判断指定包名的app是否安装
  • * 注:在Android 11版本的时候不允许获取了,不知道把目标版本设置为Android10会不会还给获取呢?答:根据测试,目标版本为22是可以获取的,那目标版本为10应该也可以。
  • * 关于Android11包可见性官网连接:
  • * https://developer.android.com/about/versions/11/privacy/package-visibility 版本更新的说明
  • * https://developer.android.com/training/basics/intents/package-visibility、
  • * https://developer.android.com/training/basics/intents/package-visibility-use-cases
  • * @param packageName
  • */
  • fun isInstall(packageName: String): Boolean = try {
  • mContext.packageManager.getApplicationIcon(packageName)
  • true
  • } catch (e: PackageManager.NameNotFoundException) {
  • false
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门