デバイスから Wi-Fi 接続ネットワークを削除したいのですが、ほとんどのコードを実行しましたが、機能していません。
public void disconnectWifi(){
Log.i(TAG,"In disconnectWifi()");
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
wifiManager.forget(wifiInfo.getNetworkId(), new WifiManager.ActionListener() {
@Override
public void onSuccess() {
Log.i(TAG,"wifi is disconnected");
}
@Override
public void onFailure(int reason) {
Log.i(TAG,"wifi is failed disconnected");
}
});
}
ここでは、Success が呼び出されることはありません。
public void disconnectCurrentNetwork(){
WifiManager wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if(wifiManager != null && wifiManager.isWifiEnabled()){
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
Log.d(TAG,"lIST"+list);
int netId = wifiManager.getConnectionInfo().getNetworkId();
wifiManager.removeNetwork(netId);
}
}
ここで netid は -1 の値を示し、wifi ネットワークも忘れません。WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN のアクセス許可を提供する必要があります。また、マニフェストで以下のように言及していますが、変更は発生しません。これらのオブジェクトを作成した場合にのみ、アプリが WifiConfiguration オブジェクトの状態を変更できるようになったことを読みました。 . ユーザーまたは他のアプリによって作成された WifiConfiguration オブジェクトを変更または削除することは許可されていません。モバイルの設定に行くことでネットワークを忘れることができるので、WiFiネットワークを忘れる方法があるはずです
<uses-permission android:name="WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN"/>