我有两个开发设备,一个是 android 2.2 手机,另一个是 Nexus7 平板电脑(没有手机)。 两者都有无线网络。如果下面的代码在 2.2phone 上执行,它会检测 Wifi 或移动数据是否打开并工作。如果我将相同的代码放在 Nexus7 平板电脑上,它会返回没有互联网连接,即使 wifi 已打开。我需要做什么才能使其在两种设备上都能正常工作?
public boolean isOnline()
{
ConnectivityManager connMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
return (networkInfo != null && networkInfo.isConnected());
}
最佳答案
当与路由器建立 WIFI 连接时,isConnected 将返回 true。您确定两台设备上的连接设置完全相同吗?
您也可以尝试 isConnectedOrConnecting(),它几乎相同,只是它返回 true,即使尚未与 ISP 建立连接但正在建立过程中也是如此。
同时检查 jelly Bean 的某些权限是否已更改以允许您检查连接。
除此之外,我认为没有理由让这种方法在不同的设备上表现不同。
关于Android 2.2 与更高版本不处理连接管理器相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613879/