Android:防止GPS停止

时间:2012-01-19 15:09:53

标签: android gps locationlistener

我在Android上遇到GPS问题。我正在使用带有GPSListener的onStatusChanged(int status)来读取GPS的状态。但是,我注意到,在某些时候,GPS停止,因为状态返回:

GpsStatus.GPS_EVENT_STOPPED

如何防止GPS完全停止? (最终我会手动停止它,但在需要时启用它是非常关键的)

1 个答案:

答案 0 :(得分:0)

如果您在服务中运行LocationListener,它将最终停止,除非您设置唤醒锁定。这与GPS本身无关。

要获取并释放唤醒锁,我在服务中使用以下代码:

/**
 * Acquire a wake lock.
 * Ensure the CPU remains on and the screen is at least dim.
 */
private void aquireWakeLock() {
    final PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
    this.wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, TAG);
    this.wakeLock.acquire();
    if( DEBUG )
        Log.d( TAG, "Wake lock aquired:" + this.wakeLock);
}

/**
 * Release the wake lock.
 */
private void releaseWakeLock() {
    if( this.wakeLock == null )
        return;
    this.wakeLock.release();
    this.wakeLock = null;
    if( DEBUG )
        Log.d( TAG, "Wake lock release");
}

在onCreate()resp中调用这些方法。的onDestroy()。