本文共 557 字,大约阅读时间需要 1 分钟。
众所周知,后台不间断定位是非常反人类的事情,不仅侵犯用户隐私,还几乎不可能实现,这类需求最遭程序员痛恨。这不,最近公司就有傻逼领导三番五次要做这个需求,没办法,只好调研一下。最后,总算有所成果。
当然,前提是,可以强制用户使用并要求用户打开相应的权限,否则免谈。所以也就免去了偷偷摸摸什么双进程保活的苦逼事儿,我们做的都是光(tian)明(bu)正(zhi)大(chi)的事。
总共有5个要点:
1、要求用户打开相应权限。包含:同意所有权限,包括始终允许定位权限、允许应用自启动、关闭智能省电模式、开启休眠时仍保持WIFI连接、给应用上锁。
2、服务设置为前台服务。用startForeground启动通知。
3、定时器AlarmManager
4、电池锁WakeLock
5、WIFI锁WifiLock
第5点很多博客都没有提到,没有这个WifiLock,就没办法保证长时间锁屏还能保持wifi连接,结果就是日志在后台定时打印,但却没有定位数据。
最后,经过一番折腾,终于在小米手机上成功实现了,虽然非常耗电(半天不开去了50%的电)。然而蛋疼的是,在华为手机上完全没效果。这需求就是个笑话,也证明了一点,对于严重侵害用户体验和隐私的需求,国内厂商对其做了各种限制,适配难度确实大。
demo github地址:
转载地址:http://rarki.baihongyu.com/