如何在Android 8和9上使用HttpProxy设置添加WifiConfiguration

问题描述 投票:3回答:1

我需要将具有代理设置的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(根本不添加代理)时,但是当我使用...

java android proxy wifimanager wificonfiguration
1个回答
0
投票

正如您在错误中所说的那样,您需要具有NETWORK_SETTINGS特权或成为设备/配置文件的所有者。自Android 8以来,这是一些规则集,请参见here

当尝试在设备的“设置”中为LG Q7上的wifi网络手动设置wifi代理设置时,我遇到了同样的问题。由于某种原因,默认的“设置”应用未对此进行处理。无论如何,我在adb-join-wifi应用程序的帮助下绕过了它,我相信它将向您展示如何以编程方式进行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.