2012-01-19 9 views
1

Android搭載のGPSに問題があります。 GPSの状態を読み込むためにGPSListenerでonStatusChanged(int status)を使用しています。しかし、私はいくつかのポイントの後、GPSはステータスを返すので、停止していることに気づく:Android:GPSが停止しないようにする

は、私は全くの停止からGPSを防ぐことができますどのように

をGpsStatus.GPS_EVENT_STOPPED? (最終的には手動で停止しますが、必要なときにオンにすることは非常に重要です)

+0

GPSはどのように開始されましたか(サービスで)どのデバイスを使用していますか?私が知っていることから、それは下層に不具合がない限り、止めるべきではありません。 – Reno

+0

私はHTC Desireを使用していますが、バッテリー節約モードが原因で停止していると思います。 – user522559

答えて

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()。

関連する問題