为何Android的getRestrictBackgroundStatus无论修改什么设置都返回相同值
问题解决方案
- 缺失权限配置:调用
ConnectivityManager.getRestrictBackgroundStatus()接口需要先在你插件的android/src/main/AndroidManifest.xml,以及宿主App的对应AndroidManifest.xml中添加网络状态访问权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
没有权限的情况下,系统会默认返回 RESTRICT_BACKGROUND_STATUS_DISABLED。
- 设置项对应错误:这个接口返回的是系统「省流量模式(Data Saver)」的限制状态,不是后台活动限制的状态,触发返回值变化的操作逻辑如下:
- 先开启系统的省流量模式开关
- 找到你的应用对应的流量使用设置,修改「允许后台使用流量」/「省流量模式下允许使用流量」的开关
- 此时接口才会返回对应状态:
- 省流量模式未开启:固定返回
RESTRICT_BACKGROUND_STATUS_DISABLED - 省流量模式已开启,应用在省流量白名单中:返回
RESTRICT_BACKGROUND_STATUS_WHITELISTED - 省流量模式已开启,应用不在白名单中:返回
RESTRICT_BACKGROUND_STATUS_ENABLED
- 省流量模式未开启:固定返回
- 版本兼容补充:这个接口仅支持Android 7.0(API Level 24)及以上系统,建议在调用前增加版本判断,低于24的系统可以返回自定义状态码做兼容处理。
你的现有Kotlin代码逻辑本身没有问题,按上面的配置调整后即可正常获取对应状态。
内容的提问来源于stack exchange,提问作者Testobile Testossimo
相关产品推荐
相关产品推荐

