在Android M上:我使用下面的代码删除当前连接的AP.
void RemoveConnectedNetwork(){
int ID=_wifiManager.getConnectionInfo().getNetworkId();
Log.d("test", "network id = ["+ID+"]");
boolen ret =_wifiManager.removeNetwork(ID);
Log.d("test", "removeNetwork return ="+ret);
_wifiManager.saveConfiguration();
}
Run Code Online (Sandbox Code Playgroud)
但removeNetwork始终返回false.虽然此API在以前的版本中运行良好.任何想法,使用任何其他API可以实现相同的目的吗?
我试图以编程方式删除我的wifi网络 - 但是我似乎无法删除/忘记当前连接的wifi连接.这应该是一个非常简单的任务 - 所以我不确定我做错了什么.
我使用以下StackOverflow帖子作为示例:
public class KillTimer extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.killtimer);
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.getConnectionInfo().getSSID()
wifiManager.getConnectionInfo().getNetoworkId();
wifiManager.removeNetwork(wifiConfig.networkId);
wifiManager.saveConfiguration();
}}
Run Code Online (Sandbox Code Playgroud) 在阅读了其他几个问题/答案后,我仍然遇到使用wifiManager.removeNetwork工作的问题.
根据:
Android - 无法以编程方式删除Wifi网络 - WifiManager类型中的方法removeNetwork(int)不适用于参数(String)
和
...我的代码应该工作:
WifiManager wifiMAN = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
for (WifiConfiguration wifiCon : wifiMAN.getConfiguredNetworks()) {
if (wifiCon.SSID.equals( "\""+ targetNetworkName +"\"")) {
wifiMAN.removeNetwork(wifiCon.networkId)) {
wifiMAN.saveConfiguration();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在API 23上测试它不起作用.查看代码时,没有任何内容显示折旧,代码适用于API 21.任何人都有任何想法?