android后台持续定位

        众所周知,后台不间断定位是非常反人类的事情,不仅侵犯用户隐私,还几乎不可能实现,这类需求最遭程序员痛恨。这不,最近公司就有傻逼领导三番五次要做这个需求,没办法,只好调研一下。最后,总算有所成果。

        当然,前提是,可以强制用户使用并要求用户打开相应的权限,否则免谈。所以也就免去了偷偷摸摸什么双进程保活的苦逼事儿,我们做的都是光(tian)明(bu)正(zhi)大(chi)的事。

        总共有5个要点:

        1、要求用户打开相应权限。包含:同意所有权限,包括始终允许定位权限、允许应用自启动、关闭智能省电模式、开启休眠时仍保持WIFI连接、给应用上锁。

        2、服务设置为前台服务。用startForeground启动通知。

        3、定时器AlarmManager

        4、电池锁WakeLock

        5、WIFI锁WifiLock

        第5点很多博客都没有提到,没有这个WifiLock,就没办法保证长时间锁屏还能保持wifi连接,结果就是日志在后台定时打印,但却没有定位数据。

        最后,经过一番折腾,终于在小米手机上成功实现了,虽然非常耗电(半天不开去了50%的电)。然而蛋疼的是,在华为手机上完全没效果。这需求就是个笑话,也证明了一点,对于严重侵害用户体验和隐私的需求,国内厂商对其做了各种限制,适配难度确实大。

        demo github地址:https://github.com/qugengting/ForegroundServiceExample

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值