如何从电池优化权限弹出窗口中获取授权状态

How to get grant staus from battery optimization permission popup

我正在为我的 React Native Android 应用程序使用 https://www.npmjs.com/package/react-native-disable-battery-optimizations-android 包。此包提供 OpenBatteryModal() 方法来引发弹出窗口以获得忽略电池优化权限。但它没有提供如何获得权限授予状态。所以,我的问题是“有没有办法知道在权限弹出窗口中选择了哪个选项,或者这个包中是否有任何其他解决方法来获得授权状态?几天来我一直对此感到震惊。也没有太多帮助除了使用这个包。

看起来这个库 (RNDisableBatteryOptimizationsAndroid) 有一种检查电池优化状态的方法,它甚至在 usage 下的自述文件中提到过。我不确定你试过什么,但这是你可以使用他们的 isBatteryOptimizationEnabled API:

检查权限是否被授予的方法
import RNDisableBatteryOptimizationsAndroid from 'react-native-disable-battery-optimizations-android';

RNDisableBatteryOptimizationsAndroid.isBatteryOptimizationEnabled().then((isEnabled)=>{
    if(isEnabled){
        RNDisableBatteryOptimizationsAndroid.openBatteryModal();
    }
});

您无法直接获取用户选择的选项,因此如果上面的示例还不够 - 您可以编写一些逻辑来获取应用激活时的状态(使用 react-native AppState ) 模式关闭后;由于模态是新的 activity,当您的 activity 再次激活时,您会收到通知。对其进行优化,以便仅在请求 openBatteryModal 时才检查状态。