Android中华为手机三态位置权限申请理解

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉点击跳转到教程

前言:

使用的华为MATE 20,Android10的系统。

	<!--精准定位权限,如:GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!--近似定位权限 如:网络定位 注:这个权限会在应用安装时由用户授予,并且不需要动态请求--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

在这里插入图片描述
下面我们进行GPS定位权限的获取,在AndroidManifest.xml文件中声明相应的权限,之后在Activity中中进行动态申请。

在这里插入图片描述
以下是三个选项的含义:

仅使用期间允许:
当用户选择"仅使用期间允许"选项时,应用程序将仅在用户正在使用应用程序的时候才能获取位置信息。一旦用户退出应用程序,应用程序将立即失去对位置信息的访问权限。这意味着应用程序无法在后台继续获取位置信息,即使它仍在运行。这种设置有效保护了用户在离开应用程序后的隐私。

允许本次使用:
当用户选择"允许本次使用"选项时,应用程序将在接下来的一段时间内(通常为5分钟左右)持续获取位置信息,即使用户已经退出了应用程序。在这段时间内,应用程序可以在前台或后台继续获取位置信息。这种设置适用于需要在用户离开应用程序后仍然持续使用位置信息的场景,但也会增加一定程度上的隐私风险。
总的来说,"仅使用期间允许"更加严格,确保应用程序只能在用户使用应用程序的时候获取位置信息,而"允许本次使用"则允许应用程序在一定时间内持续获取位置信息,即使用户已经离开应用程序。在实际使用中,用户可以根据自己的隐私偏好和安全需求选择适合的权限控制选项。

禁止:设备的位置信息绝不会向应用显示。

以下是博主本人实际验证:

1、点击仅使用期间允许,在该应用的位置信息权限页面,显示仅使用期间允许被选中。

在这里插入图片描述
2、点击允许本次使用,在该应用的位置信息权限页面,显示每次使用询问被选中。

在这里插入图片描述
3、点击禁止,在该应用的位置信息权限页面,显示禁止被选中

在这里插入图片描述
思考:如果我们点击了允许本次使用,那我们在位置信息权限页面则会看到每次使用询问被选中,那是不是每次进入APP如果需要用到位置权限,岂不是每次都要申请权限,但是我测试发现并不是这样,并不需要再去获取权限了。

解惑:

对于某些应用程序,当用户首次访问时,可能会要求用户授予一些权限或许可,比如访问摄像头、麦克风、位置等。如果用户选择了"允许",应用程序可能会将这些权限信息保存在用户设备上。这样,在下次用户再次打开应用程序时,应用程序可以直接使用之前获得的权限,而不需要再次请求用户的授权。

这种行为是由操作系统和应用程序的权限管理机制共同实现的。操作系统会为每个应用程序分配一个唯一的标识符(如包名或应用ID),并在用户授权时将该标识符与所授权的权限绑定。应用程序在后续启动时,操作系统会检查该应用程序的标识符和之前已授权的权限,如果匹配,则应用程序可以直接使用权限而无需再次请求授权。

需要注意的是,这种自动授权的行为仅限于相同设备上的同一应用程序。如果用户在不同的设备上或者使用不同的应用程序版本,可能仍然需要重新授权。此外,某些敏感权限(如通讯录、短信等)可能会更加严格,需要用户每次都进行授权。

总结来说,点击允许本次使用并保存权限的行为是为了提供更好的用户体验,避免在每次应用程序启动时都要求用户重复授权。这是操作系统和应用程序的一种权限管理机制,旨在简化用户的操作流程。

如果我们想要APP在后台能持续获取位置信息,应该怎么做呢?
在Android 10之前,应用程序可以通过ACCESS_FINE_LOCATION权限或使用后台服务来获取后台位置权限。但是,从Android 10开始,需要使用更精确的后台位置权限(ACCESS_BACKGROUND_LOCATION)来在后台获取位置信息。

这里指的是Android 10指的是手机系统,和项目的targetSdk无关,这个一定要注意。

我们要在ACCESS_FINE_LOCATION权限申请后,再申请ACCESS_BACKGROUND_LOCATION
因为在targetSdkVersion=android11,在android11手机上,同时申请,普通定位权限和后台定位权限,将不会弹窗,直接授权失败。
比如这样写,申请权限弹窗都没有,android11之后的的手机,都是这样。

requestPermissions(arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION), 100)

在这里插入图片描述
点击保持每次使用询问设置,在该应用的位置信息权限页面,每次使用询问被选中。

在这里插入图片描述
如果我们点击了,权限管理,会跳转到位置信息权限页面,如果点击了始终允许,则表示APP在后台也可以持续获取位置信息(前提是APP一直是活着的,没有被系统kill掉)。
点击了始终允许后,我们会在权限申请页面,回调到该方法onRequestPermissionsResult。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“闻起来有股答辩的味道”,答辩到底是什么味?

“闻起来有股答辩的味道”&#xff0c;答辩到底是什么味&#xff1f; 一位名叫“小鸡全家桶”的作者虚构了这样一个学校故事&#xff0c;故事说&#xff0c;由于学生的考试试卷印刷得特别模糊&#xff0c;导致里面的插图根本看不清&#xff0c;学生感到懵逼&#xff0c;监考老…

【区块链】智能合约漏洞测试

打开Ganache vscode打开智能合约漏洞工程 合约内容 pragma solidity >0.8.3;contract EtherStore {mapping(address > uint) public balances;function deposit() public payable {balances[msg.sender] msg.value;emit Balance(balances[msg.sender]);}function with…

深度学习之基于Tensorflow卷积神经网络(CNN)实现猫狗识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在人工智能和深度学习的热潮中&#xff0c;图像识别是一个备受关注的领域。猫狗识别作为图像识…

权限维持--windows

隐藏文件 ①文件属性隐藏 如何排查&#xff1a; 使用dir命令无法看到有特殊属性的文件需使用/a ②真隐藏 相当于给原本的文件增加系统文件属性、存档文件属性、只读文集属性、隐藏文件属性 如何排查&#xff1a; 取消受保护的操作系统文件 ③利用ADS隐藏 使用数据流 echo &…

Docker(四) 文件和网络

1 Dockerfile 1.1 什么是Dockerfile Dockerfile是一个文本文件&#xff0c;包含一系列命令&#xff0c;这些命令用于在 Docker 镜像中自动执行操作。Dockerfile 定义了如何构建 Docker 镜像的步骤和所需的操作。 Dockerfile 中包含的命令可以设置和定制容器的环境&#xff0c;…

求第 N 个泰波那契数 | 动态规划

1.第 N 个泰波那契数 题目连接&#xff1a;1137. 第 N 个泰波那契数 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 2.什么是动态规划 在解决这道问题之前…

2024年5月份最新独角数卡使用USDT详细小白教程

直观配套视频教程 2024年5月份最新独角数卡安装及USDT使用详细小白教程 1、创建服务器 Centos或者Ubuntu2、宝塔面板开心版安装寶塔 Linux 面版 8.0.5 開心版 - 2024年1月12日 - 开心专区 - 异次元 - Powered by Discuz!Centos安装命令&#xff08;默认安装是 8.0.1 直接在线升…

张大哥笔记:改变自己,才是改变一切的开始

人往往有一种惰性&#xff0c;总喜欢把希望寄托于别人&#xff01;比如会将注意力投向外部因素如环境、他人或命运从而期望为我们的生活带来突破和转机。但现实往往是残酷的&#xff0c;不会发生任何改变的&#xff01;真正的改变来自于自己&#xff0c;自我革新才是改变整个局…

89.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-游戏中使用的哈希算法逆向分析

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

第九节 设计 Starter 不能忽视的细节

我们要定义一个生产可用的 Starter &#xff0c;还有几个细节&#xff0c;我们必须要关注。这些细节可以很好的帮助我们写出更优秀的 Starter 一、maven 包依赖 每一个 Starter&#xff0c;可以理解为一个 Jar&#xff0c;这个 Jar 包&#xff0c;如果被其他应用引用&#xf…

贪心算法--区间调度问题

贪心算法 引言 贪心算法是一种简单而有效的算法设计技巧&#xff0c;在解决一些优化问题时具有广泛的应用。其基本思想是通过每一步的局部最优选择&#xff0c;最终达到全局最优解。贪心算法通常不会回溯之前的决策&#xff0c;而是根据当前状态作出最优决策&#xff0c;因此…

面试准备-八股【面试准备】

面试准备-八股【面试准备】 Java基础解决hash冲突的方法try catch finallyException与Error的包结构OOM你遇到过哪些情况&#xff0c;SOF你遇到过哪些情况线程有哪些基本状态?Java IO与 NIO的区别堆和栈的区别对象分配规则notify()和notifyAll()有什么区别&#xff1f;sleep()…

Docker(四)容器相关操作及问题处理

目录 一、进入、退出容器操作 二、查看Docker 容器的配置文件 方法一&#xff1a;进入docker容器内进行查看 方法二&#xff1a;通过数据卷挂载方式查看配置文件 方法三&#xff1a;使用Docker可视化工具查看配置文件 三、容器与宿主机时间同步 方法一&#xff1a;创建启…

3D模型旋转显示不全怎么办---模大狮模型网

在3D建模和渲染过程中&#xff0c;我们有时会遇到旋转模型时显示不全的问题。这种情况可能由多种原因造成&#xff0c;包括模型本身的问题、软件设置不当、硬件配置不足等。本文将为您详细介绍几种可能的解决方法&#xff0c;帮助您解决3D模型旋转显示不全的问题。 一、检查模型…

Mask R-CNN实战

一、源码和数据集的准备 获取git开源项目代码 https://github.com/matterport/Mask_RCNN 一下载2.1的前三个文件&#xff0c;和2.0的第一个h5文件&#xff0c;coco.h5是预训练权重&#xff0c;也放入源码 项目文件结构如下&#xff1a; samples/logs:训练模型保存的位置 配置…

LINUX系统编程:命名管道

匿名管道的通信只能在&#xff0c;有血缘关系的进程中&#xff0c;本质就是&#xff0c;子进程会拷贝一份父进程的文件描述符表&#xff0c;父子进程就可以看到操作系统的同一块资源&#xff08;文件&#xff09;&#xff0c;以这块资源为媒介进行通信。 命名管道&#xff0c;…

STM32——DAC篇(基于f103)

技术笔记&#xff01; 一、DAC简介&#xff08;了解&#xff09; 1.1 DAC概念 传感器信号采集改变电信号&#xff0c;通过ADC转换成单片机可以处理的数字信号&#xff0c;处理后&#xff0c;通过DAC转换成电信号&#xff0c;进而实现对系统的控制。 1.2 DAC的特性参数 1.3…

Vue3实战笔记(41)—自己封装一个计时器Hooks

文章目录 前言计时器钩子总结 前言 在Vue项目中&#xff0c;封装一个计时器挂钩&#xff08;Hook&#xff09;是一种实用的技术&#xff0c;它允许你在组件中方便地管理定时任务&#xff0c;如倒计时、计时器等&#xff0c;而无需在每个使用场景重复编写相同的逻辑代码。 计时…

大语言模型的工程技巧(一)——GPU计算

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch07_autograd/gpu.ipynb 本文将讨论如何利用PyTorch实现GPU计算。本…

常见的几种数据库通过SQL对表信息进行查询

一、前言 我们查询数据库表的信息&#xff0c;一般都使用界面化的连接工具查看&#xff0c;很少使用SQL语句去查&#xff0c;而且不同的数据库SQL语句又各自有差异。但如果通过代码去获取数据库表的信息&#xff0c;这时就需要通过SQL语句去查了&#xff0c;这个在逆向代码生成…