栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

android12的一些新权限

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android12的一些新权限

android12的一些新权限

Android12已经出了有一段时间了,相信很多开发者也都注意到android12的一些新特性了,今天我整理了一些开发上需要注意的事项,供大家参考。(如果有错误的地方请大家指正)

文章目录

android12的一些新权限读取应用列表权限模糊定位功能前台服务启动限制


读取应用列表权限

读取应用列表权限:

在Android 11上在使用PackageManger的方法来获取安装的应用列表,的时候就需要在AndroidManifest.xml文件中进行申请android.permission.QUERY_ALL_PACKAGES此权限了,但是Android12中部分手机还要添加android.permission.GET_INSTALLED_APPS权限才能正常获取到应用列表,权限代码如下:

    
    

android12虽然不用动态申请这两个权限,但是首次进入应用会弹出如下弹窗:

如果用户拒绝的话还需要提示去系统页面进行授权。
当然,如果大家不是必须获取应用列表而是简单的应用跳转,完全可以用更简单的方法try catch去实现,代码如下:

try {
	Intent intent = new Intent(Intent.ACTION_MAIN);
	ComponentName cmp = new ComponentName("应用包名", "该应用的class名称");
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setComponent(cmp);
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    //todo 提示用户没有该应用,可添加跳转应用商店或浏览器代码
}

模糊定位功能

Android12新增模糊定位功能,用户可以选择让应用只能访问大致位置。

在Android12上,如果你的应用需要获取用户准确的位置信息,那么就需要同时申请准确位置和大概位置两项权限,AndroidManifest.xml文件中的代码如下:

    
    

注意:此两项权限也都需要动态申请,如果单一申请ACCESS_FINE_LOCATION权限,可能会闪退报错。
执行动态权限申请后会弹出如下弹窗:

那么如果用户只允许了我们使用大致位置权限,但是我们的应用却必须要获取用户精确的位置怎么办呢?我们可以再次申请这两个权限,这时弹窗就会变成这样:

如果此刻用户还不同意,那就可以提示他去设置页面进行授权了。

前台服务启动限制

以 Android 12 为目标平台的应用在后台运行时无法再启动前台服务,但一些特殊情况除外。如果应用在后台运行时尝试启动前台服务,并且前台服务不符合任何特殊情况,则系统会抛出 ForegroundServiceStartNotAllowedException。
但是这并不代表我们无法在云翔在后台的service中启动前台服务,Google官方推出了一种新的解决方案WorkManager(大家可通过上方传送门了解一下WorkManager,由于本篇文章旨在介绍新特性,所以解决方案就不在此介绍了,绝对不是因为我不会。)

今天的内容就到这里了,感谢观看

如有错误欢迎大家批评指正指正,欢迎转载分享(原创不易,转载请注明出处)。我是刘big锤,一个拥有大佬的小菜鸡。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777613.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号