lec*_*ain 8 proxy android http android-wifi
在我看来,Android上的代理主题有很多令人困惑的资源.
首先,看来Proxy类的所有方法都被声明为已弃用,建议:
"使用标准的java vm代理值来查找主机,端口和排除列表.此调用将忽略排除列表."
可以通过以下方式访问官方java vm代理值:
System.getProperty("http.proxyHost")
System.getProperty("http.proxyPort")
System.getProperty("http.nonProxyHosts")
Run Code Online (Sandbox Code Playgroud)
这似乎可以通过ProxySelector类的文档得到证实.
但是尝试使用真实设备或模拟器,这些值似乎总是空洞的.在查看隐藏的ProxySelector活动的Android源代码之后,似乎代理以下列方式保存到系统的安全设置中:
Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY, hostname);
Run Code Online (Sandbox Code Playgroud)
并且只有OS提供商签署的应用程序才能写入安全设置.开发人员只能以读取模式访问这些设置,方法如下:
Settings.Secure.getString(getApplicationContext().getContentResolver(),Settings.Secure.HTTP_PROXY);
Run Code Online (Sandbox Code Playgroud)
有人可以澄清这是否正确阅读如何将代理设置访问到Android?(至少它似乎工作).如果这是正确的解释,为什么文档充满了错误?
要获取代理值,按照您所做的那样访问系统属性应该可行;没有必要访问安全设置。如果您无法使用系统属性读取通过普通设备 UI 进行的代理设置,则存在问题。代理根据网络类型而定,因此 APN 和 WiFi 将具有单独的代理设置。
| 归档时间: |
|
| 查看次数: |
5939 次 |
| 最近记录: |