【问题标题】:Android's proxy confusing documentation resourcesAndroid 的代理混淆文档资源
【发布时间】:2012-02-17 17:08:23
【问题描述】:

在我看来,关于 Android 上的代理主题有很多令人困惑的资源。

首先,Proxy class 的所有方法似乎都被声明为弃用,建议:

"使用标准 java vm 代理值来查找主机、端口和 排除列表。此调用忽略排除列表。”

官方java vm proxy values可以通过以下方式访问:

System.getProperty("http.proxyHost")
System.getProperty("http.proxyPort")
System.getProperty("http.nonProxyHosts")

ProxySelector class 的文档似乎证实了这一点。

但是在真实设备或模拟器上尝试,这些值在我看来总是空的。看了隐藏ProxySelector activity的Android源码后,似乎是通过以下方式将代理保存到系统的安全设置中:

Settings.Secure.putString(res, Settings.Secure.HTTP_PROXY, hostname);

只有由操作系统提供商签名的应用程序才能写入安全设置。开发者只能通过以下方式在读取模式下访问这些设置:

Settings.Secure.getString(getApplicationContext().getContentResolver(),Settings.Secure.HTTP_PROXY);

有人可以澄清这是否是对如何将代理设置访问到 Android 的正确阅读? (至少它似乎有效)。如果这是正确的解释,为什么文档中充满了错误?

【问题讨论】:

  • 你好 LeChuck 队长,使用三星 S2 和 android 2.3.3 你说的方法总是返回 null,但是为什么呢?
  • 很遗憾,我没有三星 S2 可以尝试您所说的内容,但在我看来,这可能取决于三星或特定运营商所做的 ROM 定制。
  • @LeChuckCaptain 你好,可以给我邮箱吗?我对您的代理库有疑问。提前致谢。
  • 你可以在这里找到我:github.com/lechuckcaptain

标签: android http proxy android-wifi


【解决方案1】:

为了获取代理值,像您所做的那样访问系统属性应该可以;不必访问安全设置。如果您无法使用系统属性来读取通过普通设备 UI 进行的代理设置,那么就有问题了。代理是每种网络类型的,因此 APN 和 WiFi 将有单独的代理设置。

【讨论】:

  • 对于 Android 1.X 和 2.X 版本实际上似乎只适用于最后一个示例,即从安全设置数据库中获取代理设置。从 3.1 版开始,用户可以为每个 Wi-Fi 接入点输入代理设置,但没有提供(或至少没有记录)开发人员访问这些设置的方法。我正在尝试构建this 库以使其变得简单,但我的问题是:我做得对还是我错过了文档中的某些内容?
  • 喂,船长。我认为您从那些 System.getProperty() 方法中得到的只是该方案的默认代理。如果您一无所获,则可能尚未定义。要获取特定 URL 的代理,请执行以下操作:proxyList = myProxySelector.select(httpUri);
  • 哇!它似乎工作,至少在 Android 3.X 或更高版本上!亮眼评论!再次感谢斯帕基!我会尝试编写一些额外的文档和示例,因为我认为很多其他开发人员并不清楚如何获取和使用这些设置!
  • 我确认这似乎仅适用于 Android 3.x 或更高版本。我针对 Android 2.x 版本创建了一个新问题:stackoverflow.com/questions/9446871/…
【解决方案2】:

我不知道这是否是访问代理设置的“正确”方式,但它是您应该访问系统“安全设置”的正确且唯一的方式。

也许this 也很有趣,看起来它让事情变得更容易,特别是如果有 Wifi 代理(Android 是否支持这样的东西?)。至少对于各种 android 版本来说,它看起来像是很棒的抽象。

【讨论】:

  • 哦,太好了!其实这是我的项目。我希望从比我更了解问题和平台的人那里找到一些答案。我希望不要成为这个问题的领先专家!
  • 哦,看起来你赢了,然后必须做更多的研究;)对不起,不知道:/
猜你喜欢
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
  • 2019-12-08
  • 2012-08-14
  • 1970-01-01
相关资源
最近更新 更多