0
我试图使用BroadcastReceiver来检测WiFi是否连接,并简单地显示状态变化时的烤面包(wifi disonnect/reconnect/turn off)似乎工作。有任何想法吗?BroadcastReceiver无法正常工作(检测WiFi是否连接)
ConnectionChangeReceiver类:
public class ConnectionChangeReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final boolean isWifiConn = networkInfo.isConnected();
Log.d("debug", "Wifi connected: " + isWifiConn);
Toast toast = Toast.makeText(context, "Wifi connected: " + isWifiConn, Toast.LENGTH_LONG);
toast.show();
}
}
清单:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<receiver android:name="ConnectionChangeReceiver" android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
<action android:name="android.net.wifi.STATE_CHANGE"/>
</intent-filter>
</receiver>
我走在应用程序,并断开无线网络连接,重新连接,没有面包。我禁用了wifi,没有烤面包。重新启用它,不要烤面包。我怀疑广播接收机有问题。
在此先感谢。
我猜这会多次点燃wifi甚至一次改变? –
是的,你是对的。当从WIFI关闭 - >开启时,我注意到它激发了两次。一旦使用isAvaialble(),true && isConnected()为false,第二次使用isAvailable()true && isConnected()为true。尽管应用程序不应该太紧张,而且我还没有找到解决方法。我相信这是正确的实施。 – Jonny07