【问题标题】:How can i retrieve proxy information from phone ? android.net.Proxy.getPort isn't working如何从手机中检索代理信息? android.net.Proxy.getPort 不工作
【发布时间】:2011-11-11 17:28:12
【问题描述】:

我的应用程序尝试使用 android.net.Proxy 从应用程序检索代理信息,然后在我的 restemplate 上设置信息。 它在nexus one上运行良好,但在三星Galaxy等其他手机中,它检索端口的值-1,主机运行良好。

我到处找了找,即使我在手机上设置了代理端口值,我也找不到为什么返回这个值,我还读到这个方法 android.net.Proxy.getHost() 和 android.net.Proxy.getPort() 已弃用,所以我的问题是:

如何从手机中检索代理信息?

谢谢。

【问题讨论】:

    标签: android proxy


    【解决方案1】:

    尝试以下方法:

    String port = System.getProperty("http.proxyPort");
    String hostName = System.getProperty("http.proxyHost");
    

    【讨论】:

    • 它不起作用,它从属性中检索空值
    • 嗯,对不起。这似乎是 Android 建议您执行此任务的方式。这适用于 Nexus One 吗?
    • 较旧的方式(已弃用的方式)在 nexus 上运行良好,但在 sansung Galaxy 上却不适用 ..
    • 好吧,那我真的不知道。我只是偏离了 Android 文档的建议。
    【解决方案2】:

    更详细的答案在这里:Getting WiFi proxy settings in Android


    我目前正在做以下事情:

        private static final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    
        ...
    
        String proxyAddress;
        int proxyPort;
    
        if( IS_ICS_OR_LATER )
        {
            proxyAddress = System.getProperty( "http.proxyHost" );
    
            String portStr = System.getProperty( "http.proxyPort" );
            proxyPort = Integer.parseInt( ( portStr != null ? portStr : "-1" ) );
        }
        else
        {
            proxyAddress = android.net.Proxy.getHost( context );
            proxyPort = android.net.Proxy.getPort( context );
        }
    

    但这仅适用于 3.1 之前设备上的系统范围代理设置,因为尚未实施 WiFi AP 特定代理设置。而且系统范围的代理无法通过标准的 Android UI 轻松设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多