GPS追跡を行い、バックグラウンドで車へのOBDII接続を確立できるマイレージログブックアプリがあります。
バックグラウンド(実際にはフォアグラウンド)サービスが停止する可能性があるため、アプリが居眠りでホワイトリストに登録されていない場合にユーザーに通知するポップアップを表示したいと思います...
そうです:
String PACKAGE_NAME = getApplicationContext().getPackageName();
PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
boolean status = false;
status = pm.isIgnoringBatteryOptimizations(PACKAGE_NAME);
if (!status) {
// show popup
}
しかし、PowerManager.isIgnoringBatteryOptimizations は、「最適化されていないアプリ」から再度削除されても、常に「true」を返します。アプリをアンインストールした場合にのみ、「false」が再び返されます... Galaxy Note 8 (Android 8.0) および Emulator 8.1 でテスト済み
質問は簡単です: これはバグですか? または、ホワイトリストからアプリを削除して、PowerManager.isIgnoringBatteryOptimizations が再び「false」を返すようにする方法は?