下面是通过包名跳转到其他APP的代码,以微信APP包名为例:
val intent : Intent?
intent = activity?.packageManager?.getLaunchIntentForPackage("com.tencent.mm")
if (intent == null) {
Log.d("Alex", "intent = $intent")
} else {
startActivity(intent)
}
通过日志可知道,intent为null,当包名错误或者该APP未配置启动Activity时,就会为null,为啥呢?
经过一晚上的上网查询,找到答案了,如下:
Android 11以下,上述代码就可以跳转,但是11及以上,查询包名相关的方法都被限制了,
方法一:必须在AndroidManifest.xml文件里面配置上权限才可,如下:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
方法二:必须在AndroidManifest.xml文件里面配置上跳转APP的包名,如下:
<queries > <package android:name="com.tencent.mm"/> </queries>
pls:
在Android12版本系统中,Google对QUERY_ALL_PACKAGES权限做了进一步限制,当应用程序在使用getAllPermissionGroups()、getPermissionGroupInfo()、getPermissionInfo()和queryPermissionsByGroup()等四个接口时,应用程序必须申请该权限,才能访问有效数据。以上四个接口分别为获取所有权限组集合、根据指定权限组名称获取权限组信息、根据指定权限获取权限信息和根据权限组查询权限。
同时,在Android12版本系统中,应用程序可以声明并创建一个自定义Activity,该Activity在启动后可让用户管理应用存储在用户设备上的数据。而应用程序使用该Activity的前提是必须同时具有MANAGE_EXTERNAL_STORAGE 权限和QUERY_ALL_PACKAGES 权限。
好了,又可以开心的玩耍了。
常见的一些APP包名:
// 微信 包名 com.tencent.mm //启动类名:com.tencent.mm.ui.LauncherUI
//QQ 包名 com.tencent.mobileqq //启动类名:com.tencent.mobileqq.activity.HomeActivity
//支付宝 包名:com.eg.android.AlipayGphone //启动类名com.eg.android.AlipayGphone.FastStartActivity
//钉钉 包名:com.alibaba.android.rimet //启动类名:com.alibaba.android.rimet.biz.home.activity.HomeActivity
//QQ空间 包名:com.qzone
//QQ手机管家 包名:com.tencent.qqpimsecure
//微博 包名:com.sina.weibo //启动类名:com.sina.weibo.EditActivity
//天天动听 包名:com.sds.android.ttpod
//中华万年历 包名:cn.etouch.ecalendar
//百度地图 包名:com.baidu.BaiduMap
//高德地图 包名:com.autonavi.minimap //启动类名:com.autonavi.map.activity.SplashActivity
//信息 包名:com.android.mms
//设置 包名:com.android.settings
//浏览器 包名:com.android.browser
//计算器 包名:com.android.calculator2
//时钟 包名:com.android.deskclock
//图库 包名:com.android.gallery3d
//相机 包名:com.android.hwcamera
//音乐 包名:com.android.mediacenter
//收音机 包名:com.huawei.android.FMRadio
//录音机 包名:com.android.soundrecorder
//UC浏览器 包名:com.UCMobile
//美图秀秀 包名:com.mt.mtxx.mtxx
//PPTV 包名:com.pplive.androidphone
//书旗免费小说 包名:com.shuqi.controller
//360手机助手 包名:com.qihoo.appstore
//360卫士 包名:com.qihoo360.mobilesafe
//360清理大师 包名:com.qihoo.cleandroid_cn
//百度手机助手 包名:com.baidu.appsearch
//豌豆荚 包名:com.wandoujia.phoenix2
//小米应用商店 包名:com.xiaomi.market
//华为应用商店 包名:com.huawei.appmarket
//安智应用商店 包名:com.hiapk.marketpho
//R.E.管理器 包名:com.speedsoftware.rootexplorer
//PP手机助手 包名:com.pp.assistant
//OPPO应用商店 包名:com.oppo.market
//联想应用商店 包名:com.lenovo.leos.appstore文章来源:https://www.toymoban.com/news/detail-822255.html
//应用宝 包名:com.tencent.android.qqdownloader文章来源地址https://www.toymoban.com/news/detail-822255.html
到了这里,关于android 11及以上如何通过包名跳转APP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!