我想知道React Native中是否有任何方法可以让我们知道用户是否已为我们的应用选择了“电池优化”?
答案 0 :(得分:3)
在本机android中,您可以使用PowerManager.isIgnoringBatteryOptimizations()
布尔值来确定应用程序是否已经忽略优化,即该应用程序是否在白名单中。
@ReactMethod public void isAppIgnoringBatteryOptimization(Callback callback){
String packageName = getReactApplicationContext().getPackageName();
PowerManager pm = (PowerManager) getReactApplicationContext().getSystemService(Context.POWER_SERVICE);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
callback.invoke(pm.isIgnoringBatteryOptimizations(packageName));
}else{
callback.invoke(true);
}
然后在js
isAppIgnoringBatteryOptimization: function(callback) {
jobModule.isAppIgnoringBatteryOptimization(ignoringOptimization => {
if (ignoringOptimization != null) {
callback("", ignoringOptimization);
} else {
callback("error", null);
}
});
}
https://github.com/vikeri/react-native-background-job/是一个很好的库,可以看到后台执行的所有极端情况
如果您想让用户将其关闭-要求
Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
权限
来自