0

对端设备关闭 WiFi 连接时触发的事件是什么。主机设备是否有任何方式获得回调,例如 onConnectionStateChange() 或类似的?

4

3 回答 3

2

这个例子适合你的需要。

您正在寻找的是呼叫广播接收器。基本上,您创建一个自定义广播接收器,它将接收有关某些操作的消息。您在意图过滤器中定义这些操作:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);

然后在此意图过滤器上注册您的接收器:

registerReceiver(wifiWatcher, intentFilter);

并且您的接收器将实现 onReceive 方法:

public void onReceive( Context context, Intent intent )

您必须使用以下方法检查此 onReceive 方法的连接性:

ConnectivityManager conMngr = (ConnectivityManager)this.getSystemService(this.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = conMngr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = conMngr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

为此,您需要在清单中添加这些权限:

<user-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<user-permission android:name="android.permission.ACCESS_WIFI_STATE" />

希望有帮助。

于 2013-03-12T14:35:30.630 回答
0

系统触发广播:

 "android.net.wifi.WIFI_STATE_CHANGED"
 "android.net.wifi.STATE_CHANGE"

查看这个答案,看看如何使用广播接收器捕获它: 当 wifi 或 3g 网络状态发生变化时广播接收器

于 2013-03-12T14:34:03.307 回答
0

您需要注册一个 Broadcast Reciever 参见示例项目NetworkUsage Samplecom.example.android.networkusage;

于 2013-03-12T14:37:57.783 回答