我正在编写一个连接到特定WIFI网络的Android应用程序。棘手的部分是,当用户手动连接到其他网络,或关闭WIFI,或连接丢失(因为用户走开)...我需要忘记这个网络(removeNetwork)。
我的问题如下:我该怎么做才能做到这一点?
非常感谢!
答案 0 :(得分:2)
我建议你在你的应用程序中实现一个广播接收器,只要网络或wifi连接有任何变化就可以激活,并且在广播接收器的onRecieve()方法中,你可以在任何时候进行任何处理。连接丢失了。
这在您的清单中
<receiver android:name=".WifiReceiver" >
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
这是java代码。 公共类WifiReceiver扩展BroadcastReceiver { private final String TAG =“WifiReceiver”;
@Override
public void onReceive(Context context, Intent intent) {
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
String wifiStateText = "No State";
switch (wifiState) {
case WifiManager.WIFI_STATE_DISABLING:
wifiStateText = "WIFI_STATE_DISABLING";
break;
case WifiManager.WIFI_STATE_DISABLED:
wifiStateText = "WIFI_STATE_DISABLED";
break;
case WifiManager.WIFI_STATE_ENABLING:
wifiStateText = "WIFI_STATE_ENABLING";
break;
case WifiManager.WIFI_STATE_ENABLED:
wifiStateText = "WIFI_STATE_ENABLED";
break;
case WifiManager.WIFI_STATE_UNKNOWN:
wifiStateText = "WIFI_STATE_UNKNOWN";
break;
default:
break;
}
MyLog.d(TAG, "onReceive Broadcast > WiFiState: " + wifiStateText);
MyLog.d(TAG, "onReceive Broadcast > Time: " + new Date());
}
} 并且不要忘记添加以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
答案 1 :(得分:1)
请查看以下有关创建将在网络状态更改时调用的BroadcastReriever的帖子: