我恰巧也原来做过员工位置管理,使用百度api或者类似的。说白了就是定位不要纯依赖gps,很多硬件为了省电,会对熄屏下的模块功能和运行进行限制。还有个问题就是熄屏大概30分钟后手机蜂窝数据也会休眠,这时候就必须要用服务唤醒一次才可以了。

解决方案 »

  1.   


    我现在使用android自带的gps功能,之前用过百度的,可以实现屏幕关闭状态下的定位,但是实际测试的过程中,同样的路线,中间经常会有一段gps定位不上,一直也没解决,所以就看看用自带的定位功能,而且自带的还有每隔多少米定位一次的功能,更符合我的需要。
      

  2.   

    我用过高德的,这个不是问题的,只要后台服务在跑就行,还有就是,可以定义多久或者是移动多少米以后,GPS信息会回调一次。
    楼主可以考虑下高德。
      

  3.   


    多谢您。
    之前用过百度的,是没有这个功能的,后来尝试了android自带的gps功能,但是锁屏下的定位一直没搞定
      

  4.   

    // 获取电源锁,保持该服务在屏幕熄灭时仍然获取CPU时,保持运行
    private void acquireWakeLock() {
    if (null == wakeLock) {
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
    | PowerManager.ON_AFTER_RELEASE, getClass()
    .getCanonicalName());
    if (null != wakeLock) {
    // Log.i(TAG, "call acquireWakeLock");
    wakeLock.acquire();
    }
    }
    } // 释放设备电源锁
    private void releaseWakeLock() {
    if (null != wakeLock && wakeLock.isHeld()) {
    // Log.i(TAG, "call releaseWakeLock");
    wakeLock.release();
    wakeLock = null;
    }
    }
    在定位的service onStart()调用acquireWakeLock(),在onDestroy()调用releaseWakeLock();
    我用的是高德地图,最近刚做这个功能,希望对你有帮助,另外你参考http://blog.csdn.net/ryantang03/article/details/9317499,他说的很详细
      

  5.   

    跑着service看看,不然一般锁屏下都不能一直处于工作状态。