gpt4 book ai didi

java - 如何在 Android 8 和 9 上添加设置了 HttpProxy 的 WifiConfiguration

转载 作者:行者123 更新时间:2023-12-01 22:41:35 25 4
gpt4 key购买 nike

我需要将带有代理设置的 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”NONE。必须具有 NETWORK_SETTINGS,或者是设备或配置文件的所有者。E/WifiConfigManager:无法添加/更新网络AndroidWifi

最佳答案

正如您收到的错误中所述,您需要拥有 NETWORK_SETTINGS 权限或者是设备/配置文件所有者。这是自 Android 8 以来设置的一些规则,请参阅 here .

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

这里的关键是您将使用 setHttpProxy 的应用程序设置为设备所有者(可以是暂时的),您可以使用 adb< 中的 dpm 工具来完成此操作 shell,如项目的 Github 页面上所述。

关于java - 如何在 Android 8 和 9 上添加设置了 HttpProxy 的 WifiConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57291739/

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