【发布时间】:2015-03-13 18:12:25
【问题描述】:
我想检查互联网和 Wi-Fi 连接。我已经实现了代码。但在这段代码中,问题是,当我在我的设备中激活 Wi-Fi 时,它会连续显示“Wi-Fi 已断开”和“已连接互联网”3-4 次,最后会显示“已连接 Wi-Fi”和然后我的 Wi-Fi 连接在我的设备中显示为启用。我只需要在启用或禁用 Wi-Fi 时检查一次 Wi-Fi 连接。 谢谢。
Java
public class ConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean isConnectedInternet =
intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
ConnectivityManager wifiConn =
(ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = wifiConn.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mWifi.isConnected()) {
Toast.makeText(context, "Wifi Conected", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(context, "Wifi disconnected", Toast.LENGTH_LONG).show();
}
if(isConnectedInternet){
Toast.makeText(context, "Internet Connection Lost", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(context, "Internet Connected", Toast.LENGTH_LONG).show();
}
}
}
菜单
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<receiver android:name=".ConnectionReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
【问题讨论】:
标签: java android android-intent android-wifi android-broadcast