安卓奇怪的问题,连接蓝牙设备必须允许定位功能

2017-11-02 17:01:30 +08:00
 haiyan

我们公司开发蓝牙设备,在安卓版本 6.0 以上,必须要允许定位功能,才能连接成功。谷歌官方好像有说明,但是对于客户来说,不可思议。我不是做安卓开发的,请问大家有遇到这样的情况,并且是怎么解决的呢?

3847 次点击
所在节点    问与答
9 条回复
Havee
2017-11-02 17:45:19 +08:00
室内定位......
hn
2017-11-02 17:48:42 +08:00
杀个 Android 程序员祭天…
phy25
2017-11-02 19:47:07 +08:00
连 BLE 就是这样,可能是 Android 认为 BLE 包括了 iBeacon 类设备,属于敏感的位置数据?总之大家都绕不开的应该。
Asshasahole
2017-11-02 20:44:18 +08:00
贵公司的耳机用的是 BLE 吗?应该不是吧。
正如 3 楼所说,BLE 因为之前更多用于和 beacon 类产品交互,被定义为精确定位方式,但是现在 beacon 半死不活,BLE 都用在其他方面了,感觉仍然定义为精确定位方式不是很合适了。
现在部分安卓手机在不打开定位的情况下无法正常使用 BLE,经典蓝牙倒不太清楚。苹果没有这种现象。
haiyan
2017-11-02 22:38:45 +08:00
@Asshasahole 是 BLE,苹果的是正常的,安卓工程师已经被折磨死
phy25
2017-11-03 00:54:56 +08:00
其实解决方案也简单,就是先检测系统权限,然后连续弹框动态请求位置权限和打开蓝牙就好(弹窗可以连按,体验还算流畅),打开之后一般用户也不至于再把位置关了,也就不会动不动再弹窗要权限了。
至于说用户不理解?弹窗前提示是系统限制就好咯,能不理解的用户自己查一查就会发现的确是这样子。
phy25
2017-11-03 01:04:48 +08:00
honeycomb
2017-11-03 03:17:22 +08:00
这是很现实的:

如果应用需要连接附近的蓝牙设备,那么它就需要能知道附近有哪些蓝牙设备。

而知道了附近有哪些蓝牙设备等同于获得了可以提取出当前位置的数据。

同理,能进行 WiFi scan 的应用也需要定位权限,未来没有定位权限的应用可能无法获知已经连接着的 WiFi 热点的 ssid/bssid,因为大数据的缘故,单个 bssid 足以提供相当精确的定位了。

所以是你的客户需要理解。
haiyan
2017-11-03 09:15:21 +08:00
@phy25 三星还是小米的系统也很变态啊,如果第一次请求这个权限不通过,下次再在应用中请求,就算用户点允许,也是无效的,只能通过设置里面去允许

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402993

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX