我在Android上遇到GPS问题。我正在使用带有GPSListener的onStatusChanged(int status)来读取GPS的状态。但是,我注意到,在某些时候,GPS停止,因为状态返回:
GpsStatus.GPS_EVENT_STOPPED
如何防止GPS完全停止? (最终我会手动停止它,但在需要时启用它是非常关键的)
答案 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()。