背景:Androidアプリはバッテリー最適化ホワイトリストに表示されますが、実際には存在しない
私はAndroidアプリを開発しています。アプリが起動すると、isIgnoringBatteryOptimizations()
機能を使用してバッテリー最適化から除外されているかどうかがチェックされます。この関数がfalseを返した場合は、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
権限を使用して、バッテリの最適化の設定画面を表示します。この画面では、ユーザーはホワイトリストにアプリを追加します。
これはAndroidスタジオからアプリを実行すると完全に機能します。問題は、リリース候補をダウンロードしてインストールするときに始まります。
私が説明する問題は、2台の電話機のいずれかでのみ発生することに注意してください。 問題は、Android 7.0を実行しているSharp 507SHで発生します。この問題は、Android 7.0を実行しているSony SOV32では発生しません。
問題:
私はダウンロードして(アンドロイドStudioを使用していない)のリリース候補をインストールし、アプリを起動し、バッテリー最適化画面は、通常のように示されています。ただし、このアプリは「最適化されていない」ホワイトリストにすぐに表示されているようです。通常、ユーザーは手動でアプリを選択して追加する必要があります。しかし、それはリストに表示されます。ユーザーが戻るボタンを押してアプリに戻り、すべてがうまく見えます。 しかし、このアプリは実際にはホワイトリストにはありません。これは、アプリが起動するたびにisIgnoringBatteryOptimizations()
がfalseを返すようにユーザーにプロンプトを表示することで確認できます。
「本物の」のホワイトリストにアプリを追加するには、まずバッテリー設定に入り、ホワイトリストから削除してから追加します。その後、プロンプトが消えるようになります。