繁体   English   中英

如何检查我的应用是否已在Android上配置电池优化?

[英]How to check if my app has been configured battery optimized on Android?

我想知道React Native中是否有任何方法可以让我们知道用户是否已经为我们的应用程序选择了“电池优化”?

在本机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权限

https://developer.android.com/reference/android/provider/Settings#ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM