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

news2024/11/20 1:46:35

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

前言:

使用的华为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.coloradmin.cn/o/1691943.html

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

相关文章

建议收藏 | 2023年生物学类SCI期刊影响因子最新预测,Molecular Plant遥遥领先

公众号&#xff1a;生信漫谈&#xff0c;获取最新科研信息&#xff01; 建议收藏 | 2023年生物学类SCI期刊影响因子最新预测&#xff0c;Molecular Plant遥遥领先https://mp.weixin.qq.com/s/tFINUzZ1l4H9x1HWTq1kFg 2023年生物学类SCI期刊影响因子最新预测&#xff0c;Molecu…

【基于springboot+vue的房屋租赁系统】

介绍 本系统是基于springbootvue的房屋租赁系统&#xff0c;数据库为mysql&#xff0c;可用于日常学习和毕设&#xff0c;系统分为管理员、房东、用户&#xff0c;部分截图如下所示&#xff1a; 部分界面截图 用户 管理员 联系我 微信&#xff1a;Zzllh_

linux父进程fork出子进程后,子进程为何首先需要close文件描述符。

在linux c/c编程时&#xff0c;父进程fork出子进程后&#xff0c;子进程经常第一件事就是close掉所有的文件描述符&#xff1b;为何需要这样做&#xff0c;本文用一个例子进行简单说明。 考虑到一种情况&#xff0c;父进程创建了tcp服务端套接字&#xff0c;并且listen&#x…

6.中断管理

一、简介 中断是 CPU 的一种常见特性&#xff0c;中断一般由硬件产生&#xff0c;当中断发生后&#xff0c;会中断 CPU 当前正 在执行的程序而跳转到中断对应的服务程序种去执行&#xff0c;ARM Cortex-M 内核的 MCU 具有一个 用于中断管理的嵌套向量中断控制器&#xff08;NV…

Qt 在windows下显示中文

Qt在windows平台上显示中文&#xff0c;简直是一门玄学&#xff0c;经过测试&#xff0c;有如下发现&#xff1a; 1&#xff0c; 环境&#xff1a;Qt 5.15.2 vs2019 64位 win11系统 默认用Qt 创建的文件使用utf-8编码格式&#xff0c;此环境下 中文没有问题 ui->textE…

运用HTML、CSS设计Web网页——“西式甜品网”图例及代码

目录 一、效果展示图 二、设计分析 1.整体效果分析 2.头部header模块效果分析 3.导航及banner模块效果分析 4.分类classify模块效果分析 5.产品展示show模块效果分析 6.版权banquan模块效果分析 三、HTML、CSS代码分模块展示 1. 头部header模块代码 2.导航及bann…

一条命令安装Metasploit Framework

做安全渗透的人都或多或少的使用kali-Linux系统中msfconsole命令启动工具&#xff0c;然而也经常会有人遇到这样那样的问题无法启动 今天我们就用一条命令来重新安装这个工具 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/met…

Proteus仿真小技巧(隔空连线)

用了好几天Proteus了.总结一下使用的小技巧. 目录 一.隔空连线 1.打开添加网络标号 2.输入网络标号 二.常用元件 三.运行仿真 四.总结 一.隔空连线 引出一条线,并在末尾点一下. 1.打开添加网络标号 选择添加网络标号, 也可以先点击按钮,再去选择线(注意不要点端口) 2.…

PTT票据传递攻击

一. PTT票据传递攻击原理 1.PTT介绍 PTT(Pass The Ticket)&#xff0c;中文叫票据传递攻击&#xff0c;PTT 攻击只能用于kerberos认证中,NTLM认证中没有&#xff0c; PTT是通过票据进行认证的。 进行票据传递&#xff0c;不需要提权&#xff0c;域用户或者system用户就可以 …

2024上海初中生古诗文大会倒计时4个月:单选题真题解析(持续)

现在距离2024年初中生古诗文大会还有4个多月时间&#xff0c;我们继续来看10道选择题真题和详细解析&#xff0c;以下题目截取自我独家制作的在线真题集&#xff0c;都是来自于历届真题&#xff0c;去重、合并后&#xff0c;每道题都有参考答案和解析。 为帮助孩子自测和练习&…

【JS】并发控制

需求 控制网络请求并发数控制并发按顺序返回结果 码 /** * 控制并发 * param {Function} fn 逻辑处理函数 * param {Array} arr 发送的数据 * param {Number} [max3] 并发数 默认3 * param {Number} [orderfalse] 按顺序返回执行结果 默认false * param {Number} [retry1] 重试…

javaAPI文档中文版(JDK11在线版)java帮助文档,掌握文档java学习事半功倍。

&#x1f320;个人主页 : 赶路人- - &#x1f30c;个人格言 : 要努力成为梧桐&#xff0c;让喜鹊在这里栖息。 要努力成为大海&#xff0c;让百川在这里聚积。 11.by,prep.凭&#xff0c;靠&#xff0c;沿 [baɪ] 12.press,v.按&#xff0c;压 [prɛs] 菜鸟教程javaAPI文档中文…

python水果分类字典构建指南

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、理解需求 三、构建字典 1. 数据结构选择 2. 代码实现 3. 结果展示 四、总…

深入编程逻辑:从分支到循环的奥秘

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、编程逻辑的基石&#xff1a;分支与循环 分支逻辑详解 代码案例&#xff1a;判断整数是…

速卖通测评揭秘:如何选择安全的渠道操作

许多商家对测评存在误解&#xff0c;认为只需进行几次测评就能迅速打造爆款。实际上&#xff0c;测评是一个需要计划和持久性的过程&#xff0c;以便让平台检测到产品的受众程度并提高产品的曝光和权重。 在进行测评时&#xff0c;安全是首要考虑的问题。平台可以通过设备、网…

【数据结构】数据结构中的隐藏玩法——栈与队列

前言&#xff1a; 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累。我…

二叉树——进阶(递归创建,非递归,广度优先,翻转,深度,对称)

二叉树——进阶 二叉树的递归创建非递归前中后序遍历非递归前序遍历非递归中序遍历非递归后序遍历 广度优先遍历二叉树&#xff08;层序遍历&#xff09;翻转二叉树 二叉树深度最大深度最小深度 对称二叉树 二叉树的递归创建 1&#xff0c;二叉树是一种结构相对固定的数据&…

SpringBoot接入Knife4j接口文档

0.介绍 1&#xff09; Knife4j是什么 Knife4j是Java MVC框架集成Swagger生成Api文档的增强解决方案&#xff0c;前身是swagger-bootstrap-ui&#xff0c;有着比Swagger更为美观的UI以及功能。 例如以下效果图&#xff1a; 2&#xff09; 官方链接 官网&#xff1a;Knife4j …

Mujava 工具的简单使用

首先下载openjava.jar和mujava.jar&#xff0c;以及自己手写一个mujava.config指向存放mujava的目录&#xff0c;并将这些文件放在mujava目录下。此时&#xff0c;基本的mujava环境就搭建好了。 分别创建src&#xff08;存放源码文件&#xff09;、classes&#xff08;存放源码…