为什么当前涂鸦公版APP的蓝牙配网在Android12及以上系统版本还在申请定位权限?

App开发相关产品技术讨论,包括OEM App、App SDK、设备控制界面开发、小程序开发等话题


Post Reply
daxiong
Posts: 13

原因是:
蓝牙设备有包含普通BLE设备和BLE Beacon设备(涂鸦内部叫ibeacon设备),而如果你想在Android12及以上手机上蓝牙搜索不申请定位权限,则必须在manifest清单文件中设置usesPermissionFlags="neverForLocation" 的标识,这个是打包配置到APP安装包中的,不支持APP运行期动态插入,当你设置完这个flag后,在不申请location权限的情况下,所有普通BLE设备可以被蓝牙扫描发现,但是 BLE Beacon设备广播会被系统过滤掉,即我们无法在通过接收BLE Beacon广播执行相应的业务功能,比如防丢、防狼以及靠近解锁等功能。但是如果去掉usesPermissionFlags="neverForLocation" 的标识,将无法搜索到普通BLE设备
也就是说,这个标识usesPermissionFlags="neverForLocation" 对普通BLE设备和BLE Beacon设备是互斥,且在APP打包安装包的时候就要确定是否要添加此标识,也即是在不申请定位权限的情况下,受限于此标识,我们只能在支持普通BLE设备和BLE Beacon设备中二选一,所以我们选择了继续申请定位权限

taoyuanxiaoqi
Posts: 68

Re: 为什么当前涂鸦公版APP的蓝牙配网在Android12及以上系统版本还在申请定位权限?

那么针对使用配网UI业务包的开发者,有什么建议?

:idea: 文章信口雌黄易,思想锥心坦白难。
Post Reply