当前位置: 首页 > news >正文

Android 11 中的权限更新

官网:https://developer.android.com/about/versions/11/privacy/permissions#audit-by-feature

Android 11 使用户能够为位置、麦克风和摄像头指定更精细的权限。此外,系统会重置针对 Android 11 或更高版本的未使用应用程序的权限,如果应用程序使用系统警报窗口或读取与电话号码相关的信息,则可能需要更新它们声明的权限。

一次性权限

从 Android 11 开始,每当您的应用请求与位置、麦克风或摄像头相关的权限时,面向用户的权限对话框都会包含一个名为Only this time的选项。如果用户在对话框中选择此选项,您的应用将被授予临时的一次性权限。

详细了解系统如何处理一次性权限。

注意:如果您的应用在请求运行时权限时已经遵循了最佳实践,则无需更改您的应用以支持一次性权限。

自动重置未使用应用程序的权限

如果您的应用以 Android 11 或更高版本为目标平台并且几个月未使用,系统会通过自动重置用户授予您的应用的敏感运行时权限来保护用户数据。此操作与用户查看系统设置中的权限并将您的应用程序的访问级别更改为Deny具有相同的效果。如果您的应用程序遵循 在运行时请求权限的最佳做法,则您不需要对您的应用程序进行任何更改。这是因为,当用户与应用程序中的功能交互时,您应该验证这些功能是否具有他们需要的权限。

注意:系统仅重置运行时权限,即在请求时向用户显示运行时提示的权限。
详细了解系统如何自动重置未使用应用的权限。

权限对话框可见性

从 Android 11 开始,如果用户在您的应用在设备上的安装生命周期内多次点击拒绝特定权限,则当您的应用再次请求该权限时,用户不会看到系统权限对话框。用户的动作暗示“不要再问了”。在以前的版本中,每次您的应用程序请求权限时,用户都会看到系统权限对话框,除非用户之前选择了“不再询问”复选框或选项。Android 11 中的这种行为变化不鼓励重复请求用户选择拒绝的权限。

注意:如果您的应用已遵循与权限相关的最佳实践,则无需更改您的应用即可支持此行为更改。
详细了解如何处理应用程序中的权限拒绝。

系统警报窗口更改

Android 11 对应用授予权限的方式进行了多项更改 SYSTEM_ALERT_WINDOW 。这些更改旨在通过更有意识地授予权限来保护用户。

某些应用会根据请求自动授予 SYSTEM _ ALERT _ WINDOW 权限
某些类别的应用程序会根据请求自动授予权限SYSTEM_ALERT_WINDOW :

任何具有 ROLE_CALL_SCREENING 和请求的应用程序SYSTEM_ALERT_WINDOW都会自动授予权限。如果应用程序丢失ROLE_CALL_SCREENING,它将失去权限。

MediaProjection 任何通过 a和请求捕获屏幕的应用程序 SYSTEM_ALERT_WINDOW都会自动授予该权限,除非用户明确拒绝该应用程序的权限。当应用程序停止捕获屏幕时,它会失去权限。此用例主要用于游戏直播应用。

这些应用无需发送 ACTION_MANAGE_OVERLAY_PERMISSION 即可获得SYSTEM_ALERT_WINDOW权限;应用程序可以 SYSTEM_ALERT_WINDOW直接请求。

MANAGE _ OVERLAY _ PERMISSION 意图总是将用户带到系统权限屏幕
从 Android 11 开始, ACTION_MANAGE_OVERLAY_PERMISSION intents 始终将用户带到顶级设置屏幕,用户可以在其中授予或撤销 SYSTEM_ALERT_WINDOW 应用程序的权限。package:意图中的任何数据都将被忽略。

在早期版本的 Android 中,ACTION_MANAGE_OVERLAY_PERMISSION意图可以指定一个包,它将用户带到特定于应用程序的屏幕以管理权限。Android 11 不支持此功能。相反,用户必须首先选择他们希望授予或撤销权限的应用。此更改旨在通过更有意识地授予权限来保护用户。

电话号码

Android 11 更改了您的应用在读取电话号码时使用的与电话相关的权限。

如果您的应用面向Android 11或更高版本并且需要访问以下列表中显示的电话号码API,则必须请求权限 READ_PHONE_NUMBERS ,而不是READ_PHONE_STATE权限。

类和 类getLine1Number()中的 方法 。TelephonyManagerTelecomManager
getMsisdn()类中 不受支持的方法TelephonyManager 。
如果您的应用声明READ_PHONE_STATE调用的方法不是上一个列表中的方法,您可以继续READ_PHONE_STATE跨所有 Android 版本请求。但是,如果您READ_PHONE_STATE仅对前面列表中的方法使用权限,请按如下方式更新您的清单文件:

更改您的声明,READ_PHONE_STATE以便您的应用仅在 Android 10(API 级别 29)及更低版本上使用该权限。
添加READ_PHONE_NUMBERS权限。
以下清单声明片段演示了此过程:

<manifest><!-- Grants the READ_PHONE_STATE permission only on devices that runAndroid 10 (API level 29) and lower. --><uses-permission android:name="android.permission.READ_PHONE_STATE"android:maxSdkVersion="29" /><uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
</manifest>

额外资源
更多关于Android 11权限变化的信息,请查看以下资料:
影片

使用 Android 11 中的最新隐私更改进行开发

相关文章:

Android 11 中的权限更新

官网&#xff1a;https://developer.android.com/about/versions/11/privacy/permissions#audit-by-feature Android 11 使用户能够为位置、麦克风和摄像头指定更精细的权限。此外&#xff0c;系统会重置针对 Android 11 或更高版本的未使用应用程序的权限&#xff0c;如果应用…...

october-cms

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;3e4s 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2021.1 信息收集 1.探测目标靶机ip。 2.探测靶机开放端口和服务情况。 漏洞探测 1.访问网页 2.用dirsearch扫描…...

抖音怎样报白?报白需要审核哪些资料呢

抖音怎样报白&#xff1f;报白需要审核哪些资料呢 抖音报白需要什么资料&#xff0c;翡翠原石产品如何开通报白#报白#小店报白#小店运营#抖音#抖音小店运营 文/专栏作家百收 随着抖音在国内流行起来&#xff0c;抖音上每天会有大量的视频更新&#xff0c;越来越多的年轻人也加…...

Spring中的AOP

Spring中的AOP 文章目录Spring中的AOPAOP概述相关术语总结作用AOP概述 AOP(Aspect Programming) 是一种设计思想&#xff0c;是面向切面编程思想 跟OOP(面向对象编程)有什么关系呢&#xff1f; AOP面向切面编程然后是OOP&#xff08;面向对象编程&#xff09;的补充和完善。…...

文件系统与动静态库的基本了解

目录文件系统与动静态库的基本了解文件系统了解Access Modify Changeinode硬链接软链接静态库与动态库概念静态库的制作使用静态库动态库的制作使用动态库总结如何制作文件系统与动静态库的基本了解 文件系统 了解Access Modify Change 当文件没有被打开时&#xff0c;他们存…...

netty——IO、NIO、AIO进化之路

IO、NIO、AIO进化之路BIO——同步阻塞IO伪异步阻塞IONIO——同步非阻塞IOAIO——异步IO总结本文会说明各种IO的特点、分别解决了什么样的问题做一个分析阐述&#xff0c;并结合Java代码例子来辅助理解&#xff0c;像这些的历史演进和详细的底层原理网上很多&#xff0c;所以我们…...

AI稳定生成图工业链路打造

前沿这篇文章会以比较轻松的方式&#xff0c;跟大家交流下如何控制文本生成图片的质量。要知道如何控制文本生成质量&#xff0c;那么我们首先需要知道我们有哪些可以控制的参数和模块。要知道我们有哪些控制的参数和模块&#xff0c;我们就得知道我们文本生成图片的这架机器或…...

20230220华南金牌主板u盘启动

20230220华南金牌主板u盘启动 2023/2/20 10:29 百度搜索&#xff1a;华南金牌主板u盘启动 https://www.zhihu.com/question/498121895?utm_id0 华南金牌主板b85u盘启动怎么设置? 华南金牌主板b85u盘启动怎么设置 海的那边 上小学后才发现还是幼儿园好混…… 华南一般是F7和F1…...

测试团队都在用哪些不错的测试用例管理平台?盘点6大主流测试管理系统

测试团队使用的主流测试用例管理平台&#xff1a;1.PingCode &#xff1b;2.TestRail&#xff1b;3.Testlink&#xff1b;4.ZephyrJira&#xff1b;5.TestCenter&#xff1b;6.飞蛾。目前市面上的测试用例管理工具有很多&#xff0c;但由于针对的项目、领域、目标用户&#xff…...

linux 系统编程之线程

线程 文章目录线程1 线程概念2 NPT安装线程 man page&#xff1a;查看指定线程的 LWP 号&#xff1a;3 线程的特点4 线程共享资源5 线程非共享资源6 线程的优缺点7线程常用操作1 线程号pthread_self函数&#xff1a;pthread_equal函数:参考代码2 错误返回值分析参考代码3 线程的…...

从0开始学python -35

Python3 File(文件) 方法 open() 方法 Python open() 方法用于打开一个文件&#xff0c;并返回文件对象。 在对文件进行处理过程都需要使用到这个函数&#xff0c;如果该文件无法被打开&#xff0c;会抛出 OSError。 注意&#xff1a;使用 open() 方法一定要保证关闭文件对…...

1.14 golang中的结构体

1. 结构体 Go语言中没有“类”的概念&#xff0c;也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 1.1. 类型别名和自定义类型 1.1.1. 自定义类型 在Go语言中有一些基本的数据类型&#xff0c;如string、整…...

原创不易,坚持更难

早上CSDN发消息&#xff0c;今天是创作满三年的纪念日&#xff0c;邀请写一篇博文&#xff0c;谈谈感受 开博原因 2020年是一个特殊的年份&#xff0c;疫情刚爆发第一年&#xff0c;也是第一次居家办公&#xff0c;从过完年就一直居家办公&#xff0c;一直居家了38天。2020年…...

计算机网络 | 谈谈TCP的流量控制与拥塞控制

文章目录一、TCP的流量控制1、利用滑动窗口实现流量控制【⭐⭐⭐】2、如何破解【死锁】局面❓二、TCP的拥塞控制1、拥塞控制的一般原理① 解决网络拥塞的误区② 拥塞控制与流量控制的关系【重点理解✔】2、TCP的拥塞控制方法① 接收窗口【rwnd】与拥塞窗口【cwnd】② 慢开始和拥…...

Flask入门(7):内置装饰器(钩子函数)

目录7.内置装饰器&#xff08;钩子函数&#xff09;7.1 before_request7.2 after_request7.3 before_first_request7.4 error_handlers7.5 template_filter7.6 template_global复习装饰器基础及其应用&#xff0c;可参考文章&#xff1a;闭包和装饰器 7.内置装饰器&#xff08…...

Java8新特性

✨作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、个人博客 、Github &#x1f389;公众号&#xff1a;猫十二懿 写在最前面 在企业中更多的都是使用 Java8 &#xff0c;随着 Java8 的普及度越来越高&#xff0c;很多人都提到面试中关于Java 8 也…...

哈希表题目:设计哈希集合

文章目录题目标题和出处难度题目描述要求示例数据范围解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析题目 标题和出处 标题&#xff1a;设计哈希集合 出处&#xff1a;705. 设计哈希集合 难度 3 级 题目描述 要求 不使用任何内建的哈希表库设计一个哈希…...

java static关键字 万字详解

目录 一、为什么需要static关键字&#xff1a; 二、static关键字概述 : 1.作用 : 2.使用 : 三、static修饰成员变量详解 : 1.特点 : 2.细节 : ①什么时候考虑使用static关键字? ②静态变量和非静态变量的区别&#xff1f; ③关于静态变量的初始化问题 : ④关于静态变…...

光谱实验反射、透射光谱测量

标题反射、透射光谱测量的基本原理  暗背景/基线&#xff1a;Dark………………………………………………………………0%  &#xff08;空&#xff09;白参考&#xff1a;Reference…………………………………………………………100%  样品反射/透射光谱&#xff1a;Sampl…...

【基础算法】之 冒泡排序优化

冒泡排序思想基本思想: 冒泡排序&#xff0c;类似于水中冒泡&#xff0c;较大的数沉下去&#xff0c;较小的数慢慢冒起来&#xff08;假设从小到大&#xff09;&#xff0c;即为较大的数慢慢往后排&#xff0c;较小的数慢慢往前排。直观表达&#xff0c;每一趟遍历&#xff0c;…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...