以编程方式设置Wifi代理凭据

ben*_*n75 13 java proxy android

该应用程序将使用系统签名进行签名,因此最终可能会授予一些受保护的权限(如android.permission.WRITE_SECURE_SETTINGS).

我的问题是,如何知道应用程序将使用系统签名进行签名,如何在特定WiFi网络上为代理全局设置凭据?

我找不到任何有关如何执行此操作的信息.根据标准Java应用程序可以执行的操作,以下代码可能有效:

        System.setProperty("http.proxyUser", usr);
        System.setProperty("http.proxyPassword", pwd);
Run Code Online (Sandbox Code Playgroud)

但是,它是在Android上设置代理凭据的方式吗?它是否将全局设置代理凭证(即对于使用默认http支持的所有应用程序)?(IMO,即使此调用有效,也不会改变进程边界外的任何内容)

我还检查的代码android.provider.Settings.java,我发现对全球代理一些性质:global_http_proxy_hostglobal_http_proxy_port,但没有关于代理验证.

rds*_*rds 6

Android用于System.setSystemPropframeworks/base/core/java/android/net/Proxy.java中设置代理

如果你有系统权限,我想你可以做同样的事情.

我不确定它是否会影响android.webkit.


小智 3

无法在 Android 中设置全局代理凭据。整个 AOSP 中根本没有任何结构可以容纳它。

不幸的是,我没有找到任何解释。相关问题跟踪项目不公开,源代码中的注释很少。开发者博客中没有任何关于此问题的内容。Karim Yaghmour 的嵌入式 Android 也没有阐明这个问题。

PS 这个答案纯粹基于代码分析。