android 11兼容适配之根据包名查看是否安装第三方应用

本文介绍android 11的兼容性适配之一的根据包名唤起第三方应用功能。包括但不限于(支付宝、微信、QQ、微博、百度地图、高德地图、腾讯地图)。由于android 11的权限进一步的回收,以前能直接通过包名查找第三方应用的功能也收到了影响,现在如果不做特殊的处理,是无法通过查找包名的方式去唤起第三方应用的。

正文

在配置文件中AndroidManifest.xml添加下面的代码即可。作用就是说我们需要去查找下面之类应用,做一个声明。

<!--适配android 11无法唤起第三方apk--><queries><!-- com.blankj.utilcode SDK检测虚拟机 --><intent><action android:name="android.intent.action.DIAL" /></intent><!-- 微信支付SDK --><package android:name="com.tencent.mm" /><!-- 支付宝支付SDK --><package android:name="com.eg.android.AlipayGphone" /><!-- 微博 --><package android:name="com.sina.weibo" /><!-- QQ --><package android:name="com.tencent.mobileqq" /><!-- 高德 --><package android:name="com.autonavi.minimap" /><!-- 百度 --><package android:name="com.baidu.BaiduMap" /><!-- 腾讯 --><package android:name="com.tencent.map" /></queries>
根据包名查找应用

普通应用

/*** 根据包名判断是否安装应用* @param context* @param packageName* @return*/public static boolean isInstalledPackage(Context context,String packageName){final PackageManager packageManager = context.getPackageManager();// 获取packagemanagerList<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息if (pinfo != null) {for (int i = 0; i < pinfo.size(); i++) {String pn = pinfo.get(i).packageName;if (pn.equals(packageName)) {return true;}}}return false;}

查找微信(微信需要做一下特殊处理,不然在有的手机上是无法只通过查找包名的方式查找到微信的)

/*** 检测是否安装微信* @param context* @return*/public static boolean isWeixinAvilible(Context context) {IWXAPI wxApi = WXAPIFactory.createWXAPI(context, WXEntryActivity.APP_ID);boolean bIsWXAppInstalledAndSupported = wxApi.isWXAppInstalled();if (!bIsWXAppInstalledAndSupported) {final PackageManager packageManager = context.getPackageManager();// 获取packagemanagerList<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息if (pinfo != null) {for (int i = 0; i < pinfo.size(); i++) {String pn = pinfo.get(i).packageName;if (pn.equals("com.tencent.mm")) {return true;}}}return false;}return true;}

android 11兼容适配之根据包名查看是否安装第三方应用相关推荐

  1. Android 11 上传图片适配 和 第三方登录

    一  上传图片 本次适配,不添加android:requestLegacyExternalStorage="true" ,过程都用原生系统代码 1.首先选择图片 Intent in ...

  2. 【Android 逆向】应用安装目录 ( Android 应用的默认安装目录 | 查找 Android 应用的安装目录 | 查询当前正在运行的应用包名 | 根据包名查询应用安装路径 )

    文章目录 一.Android 应用的默认安装目录 二.查找 Android 应用的安装目录 1.查询当前正在运行的应用包名 2.根据包名查询应用安装路径 一.Android 应用的默认安装目录 应用安 ...

  3. (转)[Android] 利用 ant 脚本修改项目包名

    [Android] 利用 ant 脚本修改项目包名在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求 房价上半年下行 下半年或回暖 在不同的OEM下有不同的包名,不同的资源,不 ...

  4. Android文件夹路径/data/data/包名/

    文件之获取文件夹路径/data/data/ 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的. 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存 ...

  5. Android studio修改项目名称和包名

    Android studio修改项目名称和包名 (android studio v2021) 如想要修必包的名称,包的名称是和项目中的文件夹一致的,所有一般会有空的目录(com.xxx.yyy.zzz ...

  6. Android 11 应用适配 兼容性

    Android 11 应用兼容性适配指导 本文非原创-若侵犯到原创利益,请联系删除 原文 https://open.oppomobile.com/wiki/doc#id=1072 一.隐私更新 2.1 ...

  7. android打包名字,使用jenkins为android工程打包,支持多包名,改资源(踩坑指南)...

    需求 上一篇文章主要写了打包刚开始的配置和参数化构建.这篇文章主要讲一讲在改包名.改资源的打包实践中,常会碰到的问题以及解决办法.如果看博客的人有更好的解决办法,也可以找我交流,关于页面有我联系方式. ...

  8. android 工程名怎么改,Android Studio修改项目名称和包名方法

    平时项目开发中,有时候维护项目多,有的项目结构需要改变,这就需要我们去修改项目名称或者修改包名.下面介绍一下怎样修改项目名称和包名. 1. 修改项目名称 1)打开项目根目录下的setting.grad ...

  9. 查询android手机端包名,查看android手机原生app包名的方法

    如果想要知道手机原生携带的app的基本信息,首先是无法获取到这个apk软件包,也就无法用appium中的aapt的方法来获取对应的信息.此时可以通过抓取日志的方法获取基本信息. 举例:想要获取到手机功 ...

最新文章

  1. 微软向.NET开发者开放Windows Phone 7 Market
  2. 高阶数据结构:SSTable
  3. mysql连接失败 ping通_哭~问:oracle 数据库有时会突然连接失败,但能ping通主机...
  4. #1081 : 最短路径·一(Dijkstra)
  5. 腾讯,字节,阿里,小米,京东大厂Offer拿到手软!绝对干货
  6. Java编程思想—第三四五六七章
  7. Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP
  8. 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)
  9. 请熟悉ECO开发的朋友解答我的一些小问题!
  10. uchome数据字典
  11. 2020_TKDE_DiffNet++_A Neural Influence and Interest Diffusion Network for Social Recommendation
  12. 量子前沿英雄谱|激光界泰斗Robert Byer(罗伯特·拜尔)
  13. subclass and extends
  14. win10怎么给多个桌面屏幕设置不同壁纸
  15. mysql存储emoji表情方式
  16. android pie_Android Pie中的新安全功能,以及为什么对它们感到兴奋
  17. 固态硬盘性能测试成绩
  18. 如何在SYSTEM权限下实现屏幕监控
  19. TopCoder介绍
  20. C语言基本数据类型输入输出格式

热门文章

  1. 红米Note4X.电池
  2. 严重: Servlet.service() for servlet [springmvc] in context with path [/ssm02] threw exception
  3. 2021年超全中高级Java工程师面试题+答案
  4. 回顾艰难且不失温度的 2022 年 | 文中附「双12免单王」获奖名单
  5. 张小庆,在路上(4)-从哪里开始呢
  6. php 读取 js json格式数据,js读取和解析JSON数据的方法
  7. 【IOT开发】蓝牙模块与PC连接通讯实验
  8. Python爬虫实战,requests+random模块,Python制作桌面翻译软件
  9. uni-app 13标星朋友和加入移出黑名单
  10. 魅族魅蓝6t详细开启Usb调试模式的方法