gpt4 book ai didi

android - PowerManager.isIgnoringBatteryOptimizations 始终返回 true,即使从 'Not optimized apps' 中删除也是如此

转载 作者:行者123 更新时间:2023-12-02 11:21:26 27 4
gpt4 key购买 nike

我有一个里程日志应用程序,它可以进行 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 再次返回“假”?

最佳答案

我制作了一个简单的请求 Activity 应用程序
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
并将此代码放入 onCreate

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent();
String packageName = this.getPackageName();
PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
if (pm.isIgnoringBatteryOptimizations(packageName))
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
}
this.startActivity(intent);
}

我已经在 8.1 模拟器上对其进行了测试,并且得到了相同的行为。您可以在设置中的所有应用列表中取消安装应用或将其状态从优化切换为未优化。我猜 Bob Snyder 在 google tracker 中显示了正确的问题。

关于android - PowerManager.isIgnoringBatteryOptimizations 始终返回 true,即使从 'Not optimized apps' 中删除也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com