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

Android 蓝牙学习

在Android中,进行蓝牙设备扫描startDiscovery需要申请位置权限,但有的时候并不需要申请位置权限,就有了android:usesPermissionFlags="neverForLocation",设置这个就不用申请位置权限来进行蓝牙扫描。

android:usesPermissionFlags="neverForLocation" 是 Android 中用于在应用的 AndroidManifest.xml 文件中声明权限使用标志的一个属性。具体来说,这个标志与蓝牙扫描相关联,旨在向用户和系统表明应用程序请求蓝牙权限的目的不是为了进行位置跟踪或获取用户的位置信息。

背景

自 Android 12(API 级别 31)起,Google 引入了更严格的隐私保护措施,其中包括对蓝牙扫描权限的管理。以前,应用程序可能只需要蓝牙权限就能访问蓝牙功能,但这些功能也可能被间接用于推断用户的位置,例如通过蓝牙信标进行室内定位。为增强用户隐私保护,Android 提供了一种机制让开发者明确声明他们的蓝牙扫描活动不会用于位置跟踪。

使用场景

当你开发的应用程序需要执行蓝牙扫描操作,但不打算用此操作来确定用户的位置时,可以使用 android:usesPermissionFlags="neverForLocation" 来声明这一点。这有助于增加用户的信任度,并可能简化权限请求流程,因为在这种情况下,应用不需要请求位置相关的权限。

如何使用

要在你的应用中声明蓝牙权限且不用于位置跟踪,可以在 AndroidManifest.xml 文件中的 <uses-permission> 标签内添加 android:usesPermissionFlags 属性。例如:

 

xml

深色版本

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.bluetoothapp"><uses-permission android:name="android.permission.BLUETOOTH_SCAN"android:usesPermissionFlags="neverForLocation"/><!-- 其他配置 -->
</manifest>

在这个例子中,BLUETOOTH_SCAN 权限被声明为“永不用于位置”,这意味着该应用承诺不会利用蓝牙扫描的结果来进行位置跟踪。

注意事项

  • 权限请求:即使指定了 neverForLocation 标志,如果您的应用还需要其他涉及位置数据的功能,则仍需请求相应的位置权限。
  • 用户体验:明确声明蓝牙权限不用于位置跟踪可以帮助提高用户的信任感,因为它清楚地传达了应用收集数据的目的。
  • 兼容性android:usesPermissionFlags="neverForLocation" 只适用于 Android 12 及以上版本。对于较低版本的 Android 系统,您需要确保应用的行为符合当时的权限模型要求。

总结

android:usesPermissionFlags="neverForLocation" 是一个重要的隐私保护特性,允许开发者更加透明地向用户展示他们如何使用蓝牙权限。这对于那些确实不需要位置信息的应用程序来说是一个很好的工具,可以帮助减少不必要的权限请求,并提升用户对应用的信任度。然而,开发者应确保遵守这一声明的实际含义,在应用逻辑中避免使用蓝牙扫描结果进行任何形式的位置跟踪。

参考:

【android bluetooth 协议分析 03】【蓝牙扫描详解 2】【app触发蓝牙扫描后,协议栈都做了那些事情】_android 经典蓝牙扫描流程源码分析-CSDN博客

《Android学习笔记》Android12蓝牙扫描不到设备的权限问题_android:usespermissionflags="neverforlocation-CSDN博客

http://www.dtcms.com/a/299407.html

相关文章:

  • 使用Netty搭建一个网络聊天室
  • ​P1103 书本整理 - 洛谷​
  • 方正小标宋简3.0,可编辑
  • 暑期算法训练.9
  • ArcGIS 2024软件下载及安装教程|ArcGIS软件安装附下载地址|详细安装说明
  • Linux中的线程(Lightweight Processes - LWP)
  • Flowable 实战落地核心:选型决策与坑点破解
  • MGER实验
  • 数字化转型 - 企业数字化建设的几点思考
  • 苍穹外卖学习笔记Day3
  • 6种AI Agent模式详解:从原理到实战应用
  • GRE和MGRE综合实验
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 热词数量分析日期统计功能实现
  • Netty综合案例(下)
  • 人工智能与能源:智慧能源的高效与可持续
  • 2025年入局苹果Vision Pro开发:从零到发布的完整路线图
  • uniapp+vue3——通知栏标题纵向滚动切换
  • 去除视频字幕 4 : 下一步,打算研究 Video Inpainting (视频修复):
  • MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡
  • 【LeetCode 热题 100】79. 单词搜索——回溯
  • 《用于几何广义断层触觉传感的图结构超分辨率:在仿人面部的应用》论文解读
  • Linux随记(二十一)
  • COZE官方文档基础知识解读第六期 ——数据库和知识库
  • 【算法】前缀和经典例题
  • RU 19.28安装
  • ubuntu22.04系统 算力4090服务器 病毒防护 查杀等 运维入门(三)clamAV工具离线查杀
  • C 语言详解:特性、应用与发展
  • UniappDay03
  • 港股历史逐笔十档分钟级订单簿行情数据分析
  • ChibiOS深度解析:硬实时内核的全景剖析与FreeRTOS实战对比