Android 2.2 与更高版本不处理连接管理器相同

标签 android android-contentprovider android-wifi

我有两个开发设备,一个是 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/

相关文章:

android - 在 android 2.2 中使用 Cursor Adapters 和 Content Provider 的正确方法是什么

android - 有助于为 Android 实现基于 SQLite 的持久性的工具?

android从服务注册到内容观察者

android - 为什么具有 NET_CAPABILITY_INTERNET 功能的 WifiNetworkSpecifier 总是返回 onUnavailable?

android - 蜂窝操作栏不显示(困惑)

android - MPAndroidChart 线图设置最多显示多少个 x 值

flutter - 无法在 flutter 中使用wifi包连接到wifi

android - WifiConfiguration 在 Lollipop 中启用网络

android - 不同屏幕尺寸和分辨率的图像尺寸

android - 这个简单的登录有什么问题