如何防止自动连接到WiFi
问题描述:
我尝试阻止自动连接到WiFi并在通知栏打开WiFi适配器后显示对话框。如何防止自动连接到WiFi
我以编程方式注册接收WIFI_STATE_CHANGED_ACTION的BroadcastReceiver。在WIFI_STATE_ENABLED中,我从配置的网络列表中删除网络。但它不起作用。
我注册的BroadcastReceiver在:
@Override
protected void onStart() {
super.onStart();
registerReceiver(wifiStatusReceiver, new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
}
而且在方法的onStop注销。
广播接收器代码:
public class WiFiStatusReceiver extends BroadcastReceiver {
private WifiManager wifiManager;
@Override
public void onReceive(Context context, Intent intent) {
wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(!isInitialStickyBroadcast()) { //it is not a sticky intent
switch(wifiManager.getWifiState()) {
case WifiManager.WIFI_STATE_ENABLING:
Toast.makeText(context, R.string.enabling_wifi, Toast.LENGTH_SHORT).show();
break;
case WifiManager.WIFI_STATE_ENABLED:
Toast.makeText(context, R.string.enabled_wifi, Toast.LENGTH_SHORT).show();
wifiManager.disconnect();
if(!wifiManager.getConfiguredNetworks().isEmpty()) { //there are some networks
for(WifiConfiguration wifiConfig :wifiManager.getConfiguredNetworks()) {
wifiManager.removeNetwork(wifiConfig.networkId);
}
}
break;
case WifiManager.WIFI_STATE_DISABLING:
Toast.makeText(context, R.string.disabling_wifi, Toast.LENGTH_SHORT).show();
break;
case WifiManager.WIFI_STATE_DISABLED:
Toast.makeText(context, R.string.disabled_wifi, Toast.LENGTH_SHORT).show();
break;
}
} else { //is a sticky intent
wifiManager.disconnect();
if(!wifiManager.getConfiguredNetworks().isEmpty()) { //there are some networks
for(WifiConfiguration wifiConfig :wifiManager.getConfiguredNetworks()) {
wifiManager.removeNetwork(wifiConfig.networkId);
}
}
}
}
}
有什么建议?
答
尝试使用此方法需要启用它时禁用无线上网 .............和.........
boolean isOn = false;
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(isOn);
而如果我们想使用WiFi,而无需连接任何设备? – 2012-07-25 07:01:06
好吧,但是当我以编程的方式在WiFi上使用可用网络显示对话框。 – ghost 2012-07-25 07:17:48
@Vash ...你的意思是没有连接任何设备.... ??那么什么是无线网络....... ??通常WIFI用于临时或基础设施模式,我还没有能够与我的宏达浏览器创建一个ad-hoc网络,但是是基础设施模式正在工作... – 2012-07-25 07:23:58