【发布时间】:2017-11-05 22:25:06
【问题描述】:
我想检查设备是否连接到互联网。下面是我的代码sn-p:
public boolean isConnectedToInterNet() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}
上述函数在后台服务返回 false(即使连接到 wifi/4g 数据),当应用在前台时返回 true。
activeNetworkInfo 对象返回以下信息:
NetworkInfo: type: WIFI[], state: DISCONNECTED/BLOCKED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false, simId: 0
问题是 Redmi 设备特有的。
我也启用了自动启动,并且 isConnectedToInterNet() 方法对所有其他设备返回 true。
我在下面看到了所有其他的 cmets,但问题没有解决
【问题讨论】:
-
请检查此线程可能会有所帮助。 stackoverflow.com/questions/9570237/…
-
我签入了 mi Note 4,但它工作正常。清理代码后请再次检查。
-
嗨@KailasBhakade 当我清除任务管理器后,所有进程都在允许自动启动后停止,我的进程开始启动,之后它为后台任务返回 false。谢谢。
-
我在尝试在
JobService中检查时遇到了同样的问题。这真的是MIUI问题吗?你找到任何解决方法了吗?只有连接检查失败还是 MIUI 会阻止互联网访问? -
@vizsatiz 我没有找到任何解决方案。 MIUI 阻止了互联网访问
标签: android