啊这……po 主你纯粹是给 12306 恶心到而已,和 Android 以及 Android 开发者关系都不大,不就是一个 12306 没给够用户指引的问题吗。12306 地位超然物外,覆盖群体又格外庞大,中外也没几家这样的企业。以前 12306 买票还要安装自签的根证书呢,怪不到 Win 头上来。
恶心的是,定位关闭导致扫不到 ble 设备只在部分手机上出现,而且程序捕获不到异常,可以认为是对开发不可知。我也是做 ble 项目的时候,自己开发测试没问题,但是客户就是说扫不到,三星、红米、华为都有部分机型用户报告,网上搜这个问题,也没有一个准确判断哪些机型会出问题的办法。 所以为了不影响没问题的用户,我最后只能是在检查完一切权限没问题之后,调用 scan 方法的同时起一个计时器,超过 3 秒没有扫到任何设备就弹窗引导用户去打开 GPS 开关……毕竟如果强制要所有用户都必须打开定位开关才能用,某些人又要质疑凭什么了。
不一定是 12306 的锅,也有可能一开始没用 wifi 定位,只用了 gps 高精度定位。 问题在于,在火车站室内你也找不到 3 个以上的卫星信号,于是就一直卡住。 你如果同时打开了 wifi ,那定位方法就不走 GPS 了,肯定是秒定位了。