gpt4 book ai didi

java - Android - 无法以编程方式删除 Wifi 网络 - WifiManager 类型中的方法 removeNetwork(int) 不适用于参数(字符串)

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:04 24 4
gpt4 key购买 nike

我正在尝试以编程方式删除我的 wifi 网络 - 但是我似乎无法删除/忘记当前连接的 wifi 连接。这应该是一项非常简单的任务 - 所以我不确定我做错了什么。

我使用以下 StackOverflow 帖子作为示例:

How to forget a wireless network in android programmatically?

     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();

}}

最佳答案

removeNetwork() 只接受整数参数。 networkSSID 是一个字符串值。这就是错误的原因。我看到您使用的是字符串形式的 SSID。您必须提供整数的网络 ID。您可以尝试 getConnectionInfo().getSSID() 并与您的 ssid 进行比较,如果它们相同则您可以尝试获取 getConnectionInfo().getNetoworkId() 应该给出已连接网络的网络 ID,您可以使用它来删除网络。

试试这个:

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);
int networkId = wifiManager.getConnectionInfo().getNetworkId();
wifiManager.removeNetwork(networkId);
wifiManager.saveConfiguration();
}}

截至 2019 年 6 月 10 日的最新更新

Android 6.0以后的Wifi管家有一些变化。

如果 WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN 不为零,则用户无法再修改或删除由 Activity 设备所有者创建的任何 Wi-Fi 配置。

活跃的设备所有者有权编辑或删除任何 Wi-Fi 配置,包括非他们创建的配置。

更多详情请引用:https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html

关于java - Android - 无法以编程方式删除 Wifi 网络 - WifiManager 类型中的方法 removeNetwork(int) 不适用于参数(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com