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,一经查实,立即删除!

相关文章

赶紧收藏!2024 年最常见 20道 Redis面试题(五)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Redis面试题&#xff08;四&#xff09;-CSDN博客 九、Redis集群的主从复制模型是怎样的&#xff1f; Redis 集群的主从复制模型是一种数据冗余和高可用性策略&#xff0c;它允许数据在多个节点之间进行复制。…

41- 5 应急响应基本概念

一、应急响应基本概念 网络安全应急响应是指针对可能发生或已经发生的安全事件,进行监控、分析、协调、处理、保护资产安全的过程。其主要目的是让人们对网络安全有所认识和准备,以便在遭遇突发网络安全事件时能够有序应对并妥善处理。 当确实发生网络安全事件时,应急响应实…

js积累四 (读json文件)

function ReadRadioJson() {var url "../radio.json" //json文件url&#xff0c;本地的就写本地的位置&#xff0c;如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…

doxygen 1.11.0 使用详解(十一)——图形和图表

目录 Doxygen has built-in support to generate inheritance diagrams for C classes. Doxygen can use the “dot” tool from graphviz to generate more advanced diagrams and graphs. Graphviz is an open-source, cross-platform graph drawing toolkit and can be fou…

2024电工杯数学建模B 题:大学生平衡膳食食谱的优化设计

背景&#xff1a; 大学时代是学知识长身体的重要阶段&#xff0c; 同时也是良好饮食习惯形成的重要时期。这一特 定年龄段的年轻人&#xff0c; 不仅身体发育需要有充足的能量和各种营养素&#xff0c; 而且繁重的脑力劳动和 较大量的体育锻炼也需要消耗大量的能源物质。 大学生…

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

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

红队攻防渗透技术实战流程:云安全之云原生安全:云堡垒机

红队云攻防实战 1. 云原生安全-防护设备-云堡垒机1. 云原生安全-防护设备-云堡垒机 堡垒机攻防:(意义) https://mp.weixin.qq.com/s/-WcgyVoTCZuPamVtI5MrJw 堡垒机漏洞:(已知)https://avd.aliyun.com/search?q=%E5%A0%A1%E5%9E%92%E6%9C%BA 云堡垒机:(云攻防) http…

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

打开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;…

前端javascript 中 JSON.parse() 的作用

1.解析 JSON 字符串 JSON.parse({"name": "tom"}) // {"name": "tom"} JSON.parse([1,2,3]) // [1,2,3] 2.转换成数字 JSON.parse(12) // 12 3.转换成布尔值 JSON.parse(false) // false

QT--气泡框的实现

提示&#xff1a;本文为学习记录&#xff0c;若有疑问&#xff0c;请联系作者&#xff0c;谦虚受教。 文章目录 前言一、h文件二、CPP文件总结 前言 实现自定义的气泡框&#xff0c;类似QToolTip的使用 一、h文件 #ifndef CUSTOMTOOLTIP_H #define CUSTOMTOOLTIP_H#include &…

求第 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.什么是动态规划 在解决这道问题之前…

数据架构规划与设计

1.数据库设计与类的设计融合 对类和类之间关系的正确识别是数据模型的关键所在。要想将建模过程缩减为一个简单的、逐步进行的过程是不太可能的。从本质上讲&#xff0c;建模是一项艺术。对一个给定的复杂情况而言&#xff0c;不存在唯一正确的数据模型&#xff0c;然而却存在…

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…

Sentry,一款超级牛逼跟踪系统Pyhton库

Sentry 库概述 Sentry 是一个开源的实时错误跟踪系统,用于监视应用程序中的错误并提供详细的错误报告.它可以帮助开发人员快速诊断和解决问题,以确保应用程序稳定运行. 安装与使用 # 首先安装 Sentry Python SDK&#xff1a;pip install sentry-sdk设置 DSN&#xff08;Data…