如何在android中检查特定网络类型的可用性?

时间:2012-01-07 17:07:54

标签: java android connectivity wlan

我写了一个Android应用程序,需要通过网络传输大量数据。为了保持低发票,我在配置中添加了一个开关,应该将应用程序切换到“仅限wlan”模式。

不幸的是,我无法在我的应用中实现对WLAN连接的正确检查,基本思路是通过

添加所需的权限
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在我的清单中(应该满足此目的)并实现了一个在我的活动中访问的简单方法:

protected boolean checkForNetwork(Context context, boolean wlanOnly) {
    // check via ACCESS_NETWORK_STATE
    ConnectivityManager manager = (ConnectivityManager) context.
            getSystemService(Context.CONNECTIVITY_SERVICE);
    if (!wlanOnly) {
        return manager.getActiveNetworkInfo().isConnected();
    } else {
        // hmm... 
    }
}

我很不确定//嗯......部分是什么。

2 个答案:

答案 0 :(得分:4)

试试这个:

NetworkInfo info = manager.getActiveNetworkInfo();
if (info.getType() == ConnectivityManager.TYPE_WIFI) {
    return info.isConnected();
}

答案 1 :(得分:1)

State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();

你可以看看这里; - )

http://developer.android.com/reference/android/net/wifi/WifiManager.html

  

公共静态类WifiConfiguration。   Status int CURRENT这是我们当前连接的网络