You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 15下如何获取Background data与Unrestricted mobile data usage状态?

Android 检查后台数据与无限制移动数据状态

检查「Background data」(后台数据)状态

Android 提供系统API判断应用后台数据是否被限制,需根据系统版本适配:

  • Android 10(API 29)及以上:调用ConnectivityManager.getRestrictBackgroundStatus(),返回值对应三种状态:

    • RESTRICT_BACKGROUND_STATUS_RESTRICTED:后台数据已关闭(用户禁用)
    • RESTRICT_BACKGROUND_STATUS_WHITELISTED:应用在后台数据白名单,不受限制
    • RESTRICT_BACKGROUND_STATUS_DISABLED:后台数据未受限(开关开启)
  • Android 6(API 23)至Android 9(API 28):调用ConnectivityManager.isBackgroundDataRestricted(),返回true代表后台数据被禁用。

代码示例(Kotlin):

val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val isBackgroundDataDisabled = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    connectivityManager.restrictBackgroundStatus == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_RESTRICTED
} else {
    @Suppress("DEPRECATION")
    connectivityManager.isBackgroundDataRestricted
}

检查「Unrestricted mobile data usage」(无限制移动数据)状态

通过PackageManager获取应用信息,判断是否开启无限制移动数据权限:

代码示例(Kotlin):

val packageManager = packageManager
val appInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
val isUnrestrictedMobileDataEnabled = appInfo.flags and ApplicationInfo.FLAG_DATA_USAGE_UNRESTRICTED != 0

注意:调用上述API需声明android.permission.ACCESS_NETWORK_STATE权限,部分系统版本需在运行时请求权限。

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:22:07