在Android生态系统中关闭对等设备的WiFi连接时会触发什么事件?

时间:2013-03-12 14:26:00

标签: android android-networking

对等设备关闭WiFi连接时触发的事件是什么。有没有办法让主机设备获得回调,例如onConnectionStateChange()或类似的?

3 个答案:

答案 0 :(得分:2)

this example适合您的需要。

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

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" />
希望有所帮助。

答案 1 :(得分:0)

系统触发广播:

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

查看此答案,看看如何使用BroadcastReceiver捕获它: BroadcastReceiver when wifi or 3g network state changed

答案 2 :(得分:0)

您需要注册广播接收者,请参阅示例项目NetworkUsage Sample com.example.android.networkusage;