我需要将具有代理设置的WifiConfiguration添加到WifiManager。当我不使用sethttpProxy(根本不添加代理)时,可以成功添加配置,但是当我使用wifiConfiguration.sethttpProxy()方法,然后使用addNetwork(wifiConfiguration)方法时,不会添加网络配置。 >
我已经在具有不同配置的物理设备上尝试过此操作,现在我正在模拟器上对其进行测试。该模拟器具有默认的Wi-Fi网络AndroidWifi,我正在尝试为其添加配置。在尝试之前,我使用系统菜单删除了所有“保存的网络”,以确保我的应用可以创建和编辑此配置。
WifiConfiguration configuration = new WifiConfiguration(); configuration.SSID = "\"" + ssid + "\""; configuration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); configuration.setHttpProxy(ProxyInfo.buildDirectProxy(proxyData.proxy_host, proxyData.proxy_port, proxyData.proxy_exception)); wifiManager.addNetwork(configuration);
addNetwork返回-1,但出现类似错误>>
E / WifiConfigManager:UID 10086没有修改代理设置“ AndroidWifi”的权限。必须具有NETWORK_SETTINGS,或者是设备或配置文件的所有者。E / WifiConfigManager:无法添加/更新网络AndroidWifi
我需要将具有代理设置的WifiConfiguration添加到WifiManager。当我不使用sethttpProxy(根本不添加代理)时,但是当我使用...
正如您在错误中所说的那样,您需要具有NETWORK_SETTINGS特权或成为设备/配置文件的所有者。自Android 8以来,这是一些规则集,请参见here。
当尝试在设备的“设置”中为LG Q7上的wifi网络手动设置wifi代理设置时,我遇到了同样的问题。由于某种原因,默认的“设置”应用未对此进行处理。无论如何,我在adb-join-wifi应用程序的帮助下绕过了它,我相信它将向您展示如何以编程方式进行此操作。