2017-09-07 10 views
1

この質問は、開発中のAndroidアプリに関するものです。私はAndroidバージョン7で実際の携帯電話でテストしています。FusedLocationApi.requestLocationUpdates()がしばらくしてインターバルリクエストを停止します

私はFusedLocationApiが15分間隔でGPS位置を要求するようにします。

アプリがフォアグラウンドにあり、画面がオンの場合、GPSリクエストは期待どおりに行われます。

アプリが最小化され、電話がスリープ状態になると、アップデートは1〜2時間は期待どおりになり、テーパーが消えて完全に停止します。わずかな振動や画面をオンにするだけで(アプリがバックグラウンドのままで)、GPSの更新が開始されるようです。

私はこれが理由だけでDOZEモードで、Googleはインターネットやネットワークを使用している、あなたのバックグラウンドサービスのターンでDOZEモードを導入されたときに、あなたのデバイスは、約3から5分意志、DOZEモードが有効になっていると思います
// Request frequent location updates. 
    Intent locationUpdateIntent = new Intent(this, StoreLocationService.class); 
    locationUpdateIntent.setAction(StoreLocationService.ACTION_LOCATION_UPDATE); 

    LocationRequest locationRequest = LocationRequest.create(); 
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    locationRequest.setInterval(15 * 60 * 1000); // 15 minutes 
    locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes 

    LocationServices.FusedLocationApi.requestLocationUpdates(
      mGoogleApiClient, locationRequest, 
      PendingIntent.getService(this, 0, locationUpdateIntent, 0)); 

答えて

1

理想的な、またはスタンバイモード(インターネットまたはネットワークを使用しているアプリケーションは画面を表示しません)。

+0

そうだね。 https://developer.android.com/training/monitoring-device-state/doze-standby.html – paperduck

関連する問題