如何知道Android设备何时连接到互联网(Wi-Fi /移动数据)

时间:2014-05-24 14:23:49

标签: android android-intent broadcastreceiver android-wifi

我想在设备连接到Wi-Fi或移动数据后立即与服务器通信。目前我正在使用广播接收器通知何时设备连接到wifi代码如下:

<receiver android:name="com.example.rup35h.WifiReceiver" >
        <intent-filter android:priority="100" >
            <action android:name="android.net.wifi.STATE_CHANGE" />
        </intent-filter>
    </receiver>

我担心的是,当设备连接到移动数据时它会起作用。当用户打开移动数据/ 3G网络时,这也会被调用。

如果有任何人有与此相关的事情,请告诉我。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

  

当用户打开移动数据/ 3G网络时,这也会被调用。

不,它不会执行,所以当你使用移动数据/ 3G网络时,它必须添加它

<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

检查您是否使用WiFi连接

ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

啊,我在你的评论中看到了

  

我只需要检查设备是否已连接。

您可以在下面执行此操作非常简单

/**
 * This method check mobile is connected to network.
 * @param context
 * @return true if connected otherwise false.
 */
public static boolean isNetworkAvailable(Context context) {
    ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if(conMan.getActiveNetworkInfo() != null && conMan.getActiveNetworkInfo().isConnected())
        return true;
    else
        return false;
}
相关问题