对等设备关闭WiFi连接时触发的事件是什么。有没有办法让主机设备获得回调,例如onConnectionStateChange()或类似的?
答案 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;