首页 > 解决方案 > 如何知道Android手机上是否启用了数据保护程序

问题描述

我知道有一些与此类似的问题, ConnectionManager.getRestrictBackgroundStatus()会告诉我是否为我的应用禁用了后台数据。

对于我的用例,我想具体了解是否为所有应用启用了数据保护程序

设置->dataSaver->restrictBackgroundData

或特定应用后台数据被禁用

app_Name->Info->Network->disable_backgroundData

ConnectionManager.getRestrictBackgroundStatus()在这两种情况下都会给我相同的答案,我怎么知道启用了哪个特定设置?

标签: javaandroidkotlinandroid-datasaver

解决方案


由于 Android Lollipop 我们有 isPowerSaveMode() ,这里是示例-

PowerManager powerManager = (PowerManager)
    getActivity().getSystemService(Context.POWER_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
        && powerManager.isPowerSaveMode()) {
    // Animations are disabled in power save mode, so just show a toast instead.
    Toast.makeText(mContext, getString(R.string.toast), Toast.LENGTH_SHORT).show();
}

推荐阅读