1
JimmyYan2019 2023-12-26 09:07:24 +08:00
所以安卓想好好的用,就得频繁换流行机器,不然开发者不给你单独适配,用起来很糟心,还有它要什么权限就给它,鬼知道没给它会引起什么问题。
|
2
edwardhodges 2023-12-26 09:09:05 +08:00 1
安卓奇葩问题太多,没有那么多手机根本适配不过来。使用 BLE 必须打开定位这个系统要求的,但是不是每个机型和系统都是这样,很奇葩,没办法。
|
3
q503315508 2023-12-26 09:11:50 +08:00 2
2 应该不是开发者背锅了,android 是这么设计的,即使是现在开了 BLUETOOTH_SCAN 权限,不申请定位权限也扫不到全部设备(应该是标准协议下的信标设备),比如 ibeacon
|
4
sodulty OP @edwardhodges 并不是,我自己写的 BLE 调试工具就不用定位权限
|
5
sodulty OP @q503315508 对 翻了下是这样的,但绝大多数 app 不给提示,导致使用者怀疑人生
|
6
yolee599 2023-12-26 09:18:00 +08:00 via Android
@q503315508 #5 就是开发者的锅,开发者应该给用户提示开启定位,否则让用户去猜?
|
7
laommmm 2023-12-26 09:22:20 +08:00
小米的 BUG ,让我刚回来用小米的时候怀疑人生,仿佛第一次认识小米一样。
|
8
ochatokori 2023-12-26 09:23:03 +08:00 via Android
开发者和安卓 37 分锅
|
9
corcre 2023-12-26 09:30:15 +08:00
咸鱼上买了个米家的扫地机器人一代, 抽风的时候就需要重连设置一下, 然后发现怎么样都连不上, 试了半天发现需要打开 gps 的精确定位, 模糊定位不行...你 tm 一个扫地机器人, 自己发的 wifi 我都连上了告诉我找不到这台扫地机器人????还需要一个精确定位?难道扫地机器人里面还有 gps 模块的吗
|
10
Sosocould 2023-12-26 09:30:24 +08:00
啊这……po 主你纯粹是给 12306 恶心到而已,和 Android 以及 Android 开发者关系都不大,不就是一个 12306 没给够用户指引的问题吗。12306 地位超然物外,覆盖群体又格外庞大,中外也没几家这样的企业。以前 12306 买票还要安装自签的根证书呢,怪不到 Win 头上来。
|
11
nothingistrue 2023-12-26 09:32:41 +08:00
1 的锅明显要 12306 背,跟操作系统就没关系。2 没锅,软件本来这样四处漏风的,果子那种才不是大众。
|
12
debuggerx 2023-12-26 09:37:18 +08:00 3
恶心的是,定位关闭导致扫不到 ble 设备只在部分手机上出现,而且程序捕获不到异常,可以认为是对开发不可知。我也是做 ble 项目的时候,自己开发测试没问题,但是客户就是说扫不到,三星、红米、华为都有部分机型用户报告,网上搜这个问题,也没有一个准确判断哪些机型会出问题的办法。
所以为了不影响没问题的用户,我最后只能是在检查完一切权限没问题之后,调用 scan 方法的同时起一个计时器,超过 3 秒没有扫到任何设备就弹窗引导用户去打开 GPS 开关……毕竟如果强制要所有用户都必须打开定位开关才能用,某些人又要质疑凭什么了。 |
13
tool2d 2023-12-26 09:37:32 +08:00
不一定是 12306 的锅,也有可能一开始没用 wifi 定位,只用了 gps 高精度定位。
问题在于,在火车站室内你也找不到 3 个以上的卫星信号,于是就一直卡住。 你如果同时打开了 wifi ,那定位方法就不走 GPS 了,肯定是秒定位了。 |
14
qyning 2023-12-26 09:40:56 +08:00 1
@corcre 不给精准定位手机获取不了已连接 WIFI ,这个扫地机配置应该是要连接扫地机热点,APP 需要知道你是否已经连接对应热点,之后发送 WIFI 和密码给扫地机联网。
|
15
Kamiyu0087 2023-12-26 09:41:06 +08:00
@debuggerx 这个跟 Android 版本有关吧
印象中 9 开始就需要打开 GPS 了,之前的不需要 |
16
sodulty OP @Sosocould 骂归骂,如果所有人都不发声,开发者不指引,到头来不还是用户莫名其妙的被恶心? 这个帖子我希望越多的人看到越好,相关开发者应该自我反省
|
17
vcn8yjOogEL 2023-12-26 09:41:23 +08:00 via Android
标准的 WiFi 和蓝牙扫描 API 不需要打开对应功能, 会自动调用
|
19
edwardhodges 2023-12-26 09:42:35 +08:00
@sodulty 是部分机型和系统,你不给定位权限,可以正常扫描,但是不会扫描出任何设备。
|
20
hokori 2023-12-26 09:43:13 +08:00
开发者的锅 测试没发现这个问题 发现问题的话,申请下定位和 wifi
|
21
debuggerx 2023-12-26 09:44:28 +08:00
@Kamiyu0087 你在网上搜,有人碰到 6.0 系统就有这个问题了……再看这个“总结”,实际上也只是部分样本,没法准确判断: https://www.dandelioncloud.cn/article/details/1610809860885266433
|
22
sodulty OP @tool2d 观点合理。但就是 12306 开发者的锅没得说,用户不需要知道获取定位背后的技术实现,只要知道用这个功能需要打开 Wi-Fi 开关
|
23
godmiracle 2023-12-26 09:47:07 +08:00
还好俺安卓只用来打游戏和装个工作微信。
|
24
forgottencoast 2023-12-26 09:48:35 +08:00
@corcre
iOS 也是这样,要共享 Wifi 密码给 app 就必须开精确定位,我也是被坑了很久才发现。 |
25
sodulty OP @edwardhodges 验证了下 是的。感谢
|
26
q503315508 2023-12-26 09:52:42 +08:00
@yolee599 哦哦 没引导和提示 那确实是做的有问题 。应该做好引导 并 提示权限用途
|
27
icyalala 2023-12-26 09:52:43 +08:00 1
扫描蓝牙和 beacons 之类的设备,本身就相当于暴露用户的位置了吧,所以需要申请位置权限告知用户被定位?
|
28
heIIokitty 2023-12-26 09:56:54 +08:00
这一看就是 12306 测试那边的锅,这个问题,不应该在测试用例里面包含吗?难道,他们的测试用例,都是全部权限开启的情况下进行测试?正常点的测试,应该都不会这样干吧,至少会把权限都关闭了,再进行测试。
|
29
fredweili 2023-12-26 09:59:43 +08:00
所以普通用户就是权限全开,予取予求
|
30
greenskinmonster 2023-12-26 10:12:03 +08:00
@sodulty #22 同意 tool2d 的说法, 感觉不应该是 app 的责任,app 问系统要位置信息,系统无论根据网络还是 GPS 还是基站定位,都不是 app 能控制的,app 只要提示你无法获取的有效位置信息即可,至于你要去室外开阔区域,还是开无线、蓝牙、手机网络,那是你应该处理的事情。
|
31
CFM880 2023-12-26 10:14:53 +08:00
一般这种,我们会建议卸载重装 App ,肯定第一次会申请权限,如果用户之前明确拒绝后,不再申请或提示
|
32
Recle 2023-12-26 10:15:59 +08:00
安卓这十年,太恶心人了,刷机刷到最后,换了 iPhone ,自此省心多了
|
33
huhalo 2023-12-26 10:20:59 +08:00 via Android
安卓应用获取定位分两种,一种是大略位置,一种是精确位置,如果应用申请精确位置,就需要打开 WiFi 和蓝牙
|
35
ssnoopy 2023-12-26 10:37:15 +08:00
确实是他的锅,等应用升 target33 就好了
|
36
kaedea 2023-12-26 10:37:30 +08:00 via Android
没什么问题,Android Fused 定位最佳实践本来就是个复杂的话,我相信没开 WiFi 定位异常的时候,WiFiInfo 肯定一堆异常被 catch 了,然而这事也怨不得 App 开发者,锅出在 mapsdk 现在许多 sdk 都以开箱即用作为卖点宣传,结果就是傻快而已。
|
37
kaedea 2023-12-26 10:39:28 +08:00 via Android
@huhalo 没错,不过后者应该引导打开 WiFi/蓝牙的。不清楚 iOS 这方面怎么处理,iOS 混合定位难道不需要用户授权?
|
38
Lin0936 2023-12-26 10:41:27 +08:00
Android 的大多数开发者都把用户当开发者,不考虑正常用户场景的。
|
40
littiefish 2023-12-26 10:45:50 +08:00 via iPhone
用过不少摄像头,遇到一样的问题,基本所有的 APP 绑定摄像头时必须开定位,要不邦定一定失败,有些会提示,有些 TM 没任何提示。
|
41
mxT52CRuqR6o5 2023-12-26 10:46:00 +08:00
chatgpt 说从安卓 6.0 开始扫描 BLE 需要申请位置权限,我不是专业的不清楚到底是某些系统不用申请位置权限违反了标准还是另一些系统需要申请权限违反了标准
|
42
wangzaiSummer 2023-12-26 11:04:24 +08:00
“准确来说是安卓 App 开发者”,你这句话真的准确吗?说事就说事
|
43
monzuguan 2023-12-26 11:25:26 +08:00 via Android
跑个题,临时身份证明或乘车证明能线下办理吗?不依靠手机,工作人员要是引导线上办理的话就掏出黑白屏诺基亚😂
|
44
Senventise 2023-12-26 11:31:20 +08:00
https://developer.android.com/develop/connectivity/bluetooth/bt-permissions?hl=zh-cn#declare-android11-or-lower
"ACCESS_FINE_LOCATION 是必需的,因为在 Android 11 及更低版本中,蓝牙扫描可能会用于收集有关用户位置信息的信息。" 部分手机需要定位权限,可能是因为安卓版本? |
45
jeesk 2023-12-26 11:40:37 +08:00
这算啥 ? target sdk 越高越坑。
|
46
career 2023-12-26 11:40:44 +08:00 via iPhone
老爷又不用自己买票
|
47
sodulty OP @monzuguan 我遇到的情况无法线下办理,小站,机器不支持直接扫描进站,这种屎到淋头的情况还是 app 办理最方便。。。
|
49
yhm2046 2023-12-26 11:52:54 +08:00
这个标题容易找骂
1.国内的安卓系统都是 aosp 魔改的,跟原生 android 基本两个东西 2.对事不对人,多做事少喷人 |
50
sir283 2023-12-26 12:04:39 +08:00
毕竟是国内特色安卓系统加上特色的开发环境,所以,出现任何的问题,都不用觉得奇怪,习惯就好了。
而 play 上的国产应用,就好很多了,但是容易封号,斟酌! O(∩_∩)O |
51
WebKit 2023-12-26 12:09:50 +08:00 via Android
1 也不是开发者的问题,安卓旧版本就是这么要求的,必须打开 wifi 才能定位
|
53
sodulty OP @yhm2046 事在人为,安卓果子各有优劣,权限引导是开发者没弄好我还不能喷了?我就是专门起的这个标题才能吸引开发者进来,我为什么不骂产品经理?产品经理有几个能说清安卓版本和权限的事?
|
54
amirobotics 2023-12-26 12:55:16 +08:00
小米虽然每次都说自己的配置很顶,但通常在看不见的地方做阉割。有次在外面死活定位失败,也是让我打开 wifi 连接。。
|
56
abc8678 2023-12-26 13:00:40 +08:00 via Android
想要使用时询问权限,结果不行,APP 非要我改为始终允许
|
58
EIJAM 2023-12-26 13:09:38 +08:00
xx 特色 App 的问题。都 targetAPI 升级到 33 了,选文件图片时还要求权限,不能支持系统的文件选择器。
|
59
WebKit 2023-12-26 13:20:33 +08:00
@corcre #57 因为要给扫地机器人配网,然后有个需求就是,把你连接的 Wi-Fi 的 SSD ,默认写道配网的输入框里。有点类似现在的手机号登录,不需要输入手机号,直接获取你手机号的操作
|
60
hicdn 2023-12-26 13:26:50 +08:00 via Android
这种破事太多,我改双持了。国产 app 只在 iPhone se2 上运行。
更有甚者,有些微信小程序在 Google play 版微信上打开白屏或者点击一下就重新加载。 |
61
winterbells 2023-12-26 13:27:47 +08:00 via Android
定位那个是真恶心
还有一个,蓝牙耳机+微信打电话,只能用外放,试了无数种方法都解决不了,上网搜了很久看到一条要把附近的设备权限打开。 太 tm 坑人了 |
62
zpxshl 2023-12-26 13:28:18 +08:00 via Android
12306 问题,要不换个非小米的手机试试?
|
63
coderstory 2023-12-26 13:34:13 +08:00
12306 的我也遇到了。。还好我拿了 2 个手机,不然绝壁火车站过夜
|
64
72MpQOSsJhyLs88N 2023-12-26 13:40:22 +08:00
V 站不是捧安卓骂苹果吗。OP 这是站位不够高啊
|
65
okhao8801 2023-12-26 15:44:23 +08:00
额,蓝牙设备扫描需要定位权限是 google 强制规定的啊,关开发者啥事情,你应该看下 google 官方文档
|
66
UkDP86IAeTHJr9p3 2023-12-26 15:58:54 +08:00 via Android
安卓确实不适合在国内使用,小米不适合在任何地方使用
|
67
iloveoovx 2023-12-26 16:04:40 +08:00
坚决不下 12306app ,去火车站旁边售票厅拿临时身份证
虽然没啥区别,少一个是一个 |
68
darkengine 2023-12-26 16:05:23 +08:00
安卓开发者真是 N 面受敌,男怕入错行,大家不要再选前端了
|
69
yugoal 2023-12-26 16:16:38 +08:00
开发者不背锅,高版本蓝牙权限现在就是要定位权限,低版本 target 应用市场又要下架,那怎么办嘛
|
70
loopq 2023-12-26 16:55:54 +08:00
开发者不应该背锅吧,毕竟 iOS 和 Android 的定位方式是一样的,总共三种,gps 基站 wifi
相关介绍在这里, Android: https://juejin.cn/post/7049900644383064078 ios: https://sunxichun.github.io/2018/12/30/iOSLocation/ 我进 Android 12306 测试了一下,不开 wifi 保留 数据网络和 GPS 可以定位,不开 GPS 提示定位失败,请打开 GPS ,而 GPS 定位速度最慢以及在室内有失败的情况,如果想快速准确定位,一定是 wifi + GPS 同时打开,不清楚具体复现情况,只能推测是 GPS 定位失败或者 小米 14 rom 的问题,毕竟我是用一加 氧 os 测试的,系统贴近原生。 |
71
totoro52 2023-12-26 17:33:21 +08:00
你来开发安卓就知道啥叫适配地狱了。。。还要扛着谷歌每年的各种骚操作,
|
72
amon 2023-12-26 17:37:53 +08:00
印象深刻的一个帖子,大家吐槽 Android 流氓 App 太多,下面用户说谁让你不用什么冰箱 App 冻结。
有种感觉大家吐槽印度 QJ 犯太多,印度人说:谁让不穿铁内裤。哈哈~ |
73
Tyanboot 2023-12-27 00:19:03 +08:00
@greenskinmonster 这怎么就不是 app 的责任了,按照这个说法,我用支付宝付款,失败了统一提示“付款失败”就行了,至于你是余额不足、密码错误、网络错误、对方账号锁定还是怎么回事,那也是你应该处理的事情?
再比如之前美团点外卖,用了一个红包,下单前看价格还是减过的,下单付款的时候就变成原价了,没有任何提示,等付完款发现不对劲,查看订单详情里面根本就没使用任何红包,最后查了一圈才发现是因为该商家此类红包今天无剩余量了。是不是这也不是美团的责任,反正你红包用不了,至于是他过期了、商家不让用、条件不符合,那也是你用户自己需要处理的事情? |
74
greenskinmonster 2023-12-27 10:31:39 +08:00
@Tyanboot 两种场景对比下
支付宝调用银行接口->银行交易失败,返回错误代码->支付宝显示对应错误信息,以上是正常操作。 应用向系统申请定位信息->系统定位失败,返回错误信息->应用显示错误原因,也是正常操作。 支付宝会在你余额不足的时候,帮你查询附近有哪个网点可以存钱吗? 应用需要在定位失败的情况下,提示你打开无线/蓝牙/手机数据吗?假如用户在室内,应用是不是需要开启前后摄像头,判断下周围环境,提示你到开阔区域以便接受卫星信号? 我觉得对于需要定位功能的应用,只需要检查定位权限是否授予,系统定位开关是否打开即可。需要网络的话,提示网络是否连通。无线和手机数据对于定位都是可选,否则在野外的话,单根据 GPS 就不能定位了吗? |
75
kimiler 2023-12-27 15:58:01 +08:00
第一个应该是开发者代码有问题。
第二个是机制问题,android 里蓝牙开关是代表此功能是否能使用。扫描则是另外一个权限组-发现附近的设备。准确的说发现附近的设备,分为三套权限: 扫描周边蓝牙 12 之前则统一用定位权限。 链接蓝牙设备 12 ,有专门的权限 api ,因此可以不用申请定位权限。 扫描周边 wifi 13 之后,有专门的权限 api ,因此可以不用申请定位权限。 |
76
ellermister 2023-12-27 18:14:49 +08:00
无论是 Android 还是 ios 现在如何在飞机上飞行模式下,打开 GPS 定位自己的坐标啊?好多地图下了离线模式都没屌用
|
77
lqz 2023-12-27 21:27:52 +08:00
应该是没打开权限导致的
|
78
pi7m1Dr691wfl95q 2023-12-27 23:42:41 +08:00
长期用 pixel 手机,android 系统没碰过这些问题,朋友的小米手机,安卓系统,每次让我帮他弄个什么 app 的时候就想把他手机砸成粉末。
|
79
yanhuamiluan 2023-12-28 10:34:18 +08:00
钉钉会提示“请打开 Wi-Fi 和蓝牙来辅助精确定位”, 只是开 wifi 但是没连上 wifi, 不懂原理
12306 嘛 |
80
Admin8012 2023-12-30 20:24:36 +08:00 via Android
双持破千愁 养蛊就得 ios
|
81
behindeye 2023-12-31 17:48:41 +08:00 1
本人从事某手机厂商安全组,负责系统权限机制,这个真的是安卓在为以前的坑过买单,早期安卓权限过度开放,导致权限滥用,用户隐私泄露等,后面谷歌为了逐渐回收权限,每次大版本都有变更,然后各种权限兼容、升级逻辑,一堆 if else ,不同系统版本,不同表现,应用不同 targetsdk ,也会不同的授权机制,非常复杂
|