如何以编程方式读取WiFi代理设置?
GalaxyS和GalaxyTab有自己的HTTP代理设置,专门用于OS级别的WiFi连接。 (菜单 - >设置 - >无线和网络 - > Wi-Fi设置 - >菜单键然后高级)这是非常好的功能,否则你不能使用WiFi代理服务器。 (参见问题http://code.google.com/p/android/issues/detail?id=1273)
现在我的应用程序使用与通常的HttpClient的http连接。我想从操作系统中读取代理设置并进入连接,但我不知道如何阅读它。
使用getprop命令,我可以读取APN的代理设置,但不能读取WiFi。 APN代理设置与密钥“net.gprs.http-proxy”一起存储。
adb -d shell
$ getprop net.gprs.http-proxy
getprop net.gprs.http-proxy
http://proxy.example.com:8888/
$
WiFi的高级设置屏幕在com.android.settings.wifi.AdvancedSettings中实现,当然,首选项存储在/data/data/com.android.settings/shared_prefs/com.android.settings_preferences.xml中。我只是无法从我的应用程序中读取文件,对吧?
我想我会被卡住,除非三星提供特殊的API来访问该设置,但我找不到这样的信息。顺便说一下,包括我在内的很多应用程序在全局HTTP代理设置方面都有很大的优势,所以我希望有一种方法......
答案 0 :(得分:1)
未来版本的android不会使用net.gprs.http-proxy。他们将使用java VM属性http.proxyHost,http.proxyPort和http.nonProxyHosts(https也设置)。大多数http堆栈已经符合此标准,因此您不需要像应用程序开发人员那样做额外的工作。
代理设置将从APN数据库中读取(与以前一样),但也将从每个wifi-AP数据库中读取,因此无线和移动数据都将受益。
这已经在HC及其他地方实施。如果要检查代理设置,可以使用System.getProperty(“http.proxyHost”)java调用。