我想在设备连接到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网络时,这也会被调用。
如果有任何人有与此相关的事情,请告诉我。 提前谢谢。
答案 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;
}