2016-10-10 18 views
3

私はフォアグラウンドサービスを持っているアプリケーションを開発しています。ネットワークの変更があったときに検出して、接続できないかどうかを確認しようとしています。省電力(サムスンS6)を無効にすると、ConnectivityManager.CONNECTIVITY_ACTIONブロードキャストを受信することは完全に機能します。しかし、私が省電力を有効にすると、私はバックグラウンドデータを失う可能性があり、ブロードキャストでは何も教えてくれません。Androidバッテリーの最適化

私はそれがDozeに関係していると思うので、PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGEDを​​聞いてみましたが、決して解雇されません。

私がSettings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONSをリクエストした場合、私の問題は解決しますが、Googleはプレイストアからアプリを引き出してリクエストしています。どのようなアイデアが私にネットワーク接続を失わせてしまったのか、どのように成功してそれを聞くことができますか?

答えて

0

ユーザはバッテリの最適化を無効にする必要があります。だから、バッテリーの最適化を無効にするようにユーザに促すと、上記のこの意図を開始

Intent intent = new Intent(); 
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); 
context.startActivity(intent); 


あなたはしてユーザーのための画面を起動することができます。

関連する問題