Android: предотвращение остановки GPS - PullRequest
1 голос
/ 19 января 2012

У меня проблема с GPS на Android.Я использую onStatusChanged (int status) с GPSListener, чтобы прочитать состояние GPS.Тем не менее, я заметил, что через некоторое время GPS останавливается, так как возвращается статус:

GpsStatus.GPS_EVENT_STOPPED

Как вообще запретить остановку GPS?(В конце концов я остановлю это вручную, но очень важно включить его, когда это необходимо)

1 Ответ

0 голосов
/ 20 января 2012

Если вы используете 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 () соотв. OnDestroy ().

...