0

私のアプリはGPSロケーションデータを15分ごとにサーバーに送信します。この機能はアプリの中心的な目的です。バッテリーの最適化でDozeが私のアプリケーションを延期するのを防ぐことはできません

ただし、電話がオフになっていて使用されていないときは、GPSのロギングがオフになります。 GPSの記録間の時間は、しばらくの間15分、次に1時間、2時間、4時間、6時間、その後15分に戻ります。

これはAndroid 6で導入されたDozeモードによるものと思われます。このアプリをバッテリー最適化ホワイトリストに追加しましたが、違いはありません。despite the documentation claiming otherwise

  1. この場合、ホワイトリストはなぜ役立たないのですか?
  2. 代わりに何をする必要がありますか? Wakelockは一定の間隔で遅れ、Dozeを防止しますか?

    // Request frequent location updates. 
    Intent locationUpdateIntent = new Intent(this, StoreLocationService.class); 
    locationUpdateIntent.setAction(MyAwesomeActionName); 
    
    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)); 
    

答えて

0

ホワイトリストは、ネットワークが、まだブロックにいくつかのCPUの活動を可能にします。ホワイトリストに登録されたアプリケーションのCPU使用を許可するには、setAlarmAndAllowWhileIdle()を使用します。

その他のオプションは、このドキュメントに記載されています

https://developer.android.com/training/monitoring-device-state/doze-standby.html#understand_app_standby

関連する問題