Android 如何做一个 gps tracker? - V2EX
fangchang

Android 如何做一个 gps tracker?

  •  1
     
  •   fangchang Feb 2, 2018 14950 views
    This topic created in 3036 days ago, the information mentioned may be changed or developed.

    目前我在做的一个 app 由于需求,需要跟踪用户的移动路径。 那么我想给 app 添加一个后台不断运行的服务。并且不断读取当前位置然后保存到数据库。

    我现在的一个实现就是通过 AlarmManager 建立一个每 x 秒的 alarm,再通过 alarm 呼叫前台服务。之后让前台服务进行 gps 信息获取。 git: https://github.com/Qiaorui/GpsTracker

    但是这样的做法会把服务变成前台服务,在界面上会不断提醒用户。 我想知道的是,微信,qq 这些是怎么做到不变成前台服务并且保持 gps 信息的获取的? 有没有一个 best practice ? 现在 Api 更新的挺多的,我找到的都已经 deprecated 了。

    7 replies    2018-02-03 02:47:56 +08:00
    pimin
        1
    pimin  
       Feb 2, 2018 via Android
    可以看下 Google 的 MyTracks 源码
    目前项目已经停止服务了
    ai277014717
        2
    ai277014717  
       Feb 2, 2018
    这个我做过。微信,qq 都是毒瘤 APP,厂商会给开后门的。自己做的话基本没希望保活,除非打开开发者模式后台限制。不然分分钟被杀死。非要弄的话建议直接介入百度地图的 sdk。后台开一个 service,只做定位和保存数据库功能。
    每次需要定位直接换行这个 service 即可,权限弄的多一些。
    像 iOS 我也弄过,基本为了省电,1 分钟 gps 只工作十秒用完关闭可以达到一个省电的效果。
    XinLake
        3
    XinLake  
       Feb 2, 2018 via Android
    GPS 信息这块,不用你 app 主动,位置信息更新系统会通知你,你 app 只需要注册 GPS 事件通知即可。

    Android 编程,面向对象编程不要老想着那个“ main ”
    fangchang
        4
    fangchang  
    OP
       Feb 2, 2018
    @pimin 谢谢!我看了下它的 git。不过它最后一次更新是 2015 年了。其中的实现方法已经不符合现在 android 的做法了。

    @ai277014717 原来如此。 我主要是想把前台服务转成后台,并且尽量不被杀死吧。 现在后台服务默认如果不进白名单的话,就肯定会被干掉。而且一个小时里只能唤醒几次而已,远远不够达到路径跟踪的效果。

    @XinLake 你是指 location manager 里注册一个监听么? 但这样还是需要一个 service 挂起一直监听。而这样一直存活的 service 已经在 Android 8.0 里被严格限制了。 在这两篇里都有提到。
    https://developer.android.com/about/versions/oreo/background.html
    https://developer.android.com/about/versions/oreo/background-location-limits.html
    XinLake
        5
    XinLake  
       Feb 2, 2018 via Android
    @fangchang 额,是我低估你了。文档我这打不开,有什么有用的信息我再回你。
    s82kd92l
        6
    s82kd92l  
       Feb 3, 2018 via Android
    追踪用户路径还不让前台提醒用户,这得有多流氓啊?
    fangchang
        7
    fangchang  
    OP
       Feb 3, 2018
    @s82kd92l 如果是必须的话,那我自然也就不会再考虑转后台。 不过像鹅厂的 app 都可以做到,就想着是不是还有什么方法是我没想到的
    About     Help     Advertise     Blog     API     FAQ     Solana     5363 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 56ms UTC 07:18 PVG 15:18 LAX 00:18 JFK 03:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86