首页 > 解决方案 > 当 Android 的数据保护程序关闭时获取“BLOCKED”网络状态

问题描述

我正在开发一个在运行 Android 7.0 的特定平板电脑上使用的应用程序。我正在使用 aService发送周期性DatagramPackets。我只能使用移动网络ConnectivityManager我使用和检查连接NetworkInfo状态DetailedState。我使用以下代码获取网络状态:

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
DetailedState networkState = activeNetwork.getDetailedState();

在我的平板电脑中,流量节省程序已关闭。以防万一,我已经运行测试以验证屏幕关闭时没有限制,即使网络被阻塞,cm.getRestrictBackgroundStatus()总是返回 1,即RESTRICT_BACKGROUND_STATUS_DISABLED 。

那么,为什么网络被封锁了呢?我的应用程序需要特殊权限吗?我的平板电脑需要特殊配置吗?

标签: javaandroidandroid-connectivitymanagernetworkinfo

解决方案


这是正常行为。当您的屏幕被锁定时,它会使用打盹模式。打盹模式关闭互联网通信和所有后台服务。您需要唤醒您的设备,然后才能使用互联网进行所有操作。文件资料


推荐阅读