java - 以编程方式导入 Wifi 代理设置 PAC 文件
问题描述
我正在尝试从 URL 导入 PAC 文件并以编程方式更改 Wifi 代理设置。我搜索并发现有可能:
ProxyInfo.buildPacProxy(Uri.parse("someurl")
在问这个问题之前,我检查了这里以及所有这些。我面临的问题是,当我实施其中一些解决方案时,一切都编译得很好,没有例外,但是当我检查没有更新代理设置时。这是我的最后一个代码,但再次没有成功:
public void setWifiProxySettings5()
{
//get the current wifi configuration
WifiManager manager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiConfiguration config = GetCurrentWifiConfiguration(manager);
if(null == config)
return;
try
{
//linkProperties is no longer in WifiConfiguration
Class proxyInfoClass = Class.forName("android.net.ProxyInfo");
Class[] setHttpProxyParams = new Class[1];
setHttpProxyParams[0] = proxyInfoClass;
Class wifiConfigClass = Class.forName("android.net.wifi.WifiConfiguration");
Method setHttpProxy = wifiConfigClass.getDeclaredMethod("setHttpProxy", setHttpProxyParams);
setHttpProxy.setAccessible(true);
Class proxySettingsClass = Class.forName("android.net.IpConfiguration$ProxySettings");
Class[] setProxySettingsParams = new Class[1];
setProxySettingsParams[0] = proxySettingsClass;
Method setProxySettings = wifiConfigClass.getDeclaredMethod("setProxySettings", setProxySettingsParams);
setProxySettings.setAccessible(true);
ProxyInfo pacInfo = ProxyInfo.buildPacProxy(Uri.parse("http://localhost/pac"));
//pass the new object to setHttpProxy
Object[] params_SetHttpProxy = new Object[1];
params_SetHttpProxy[0] = pacInfo;
setHttpProxy.invoke(config, params_SetHttpProxy);
//pass the enum to setProxySettings
Object[] params_setProxySettings = new Object[1];
params_setProxySettings[0] = Enum.valueOf((Class<Enum>) proxySettingsClass, "STATIC");
setProxySettings.invoke(config, params_setProxySettings);
//save the settings
manager.updateNetwork(config);
manager.disconnect();
manager.reconnect();
}
catch(Exception e)
{
Log.v("wifiProxy", e.toString());
}
}
解决方案
推荐阅读
- kdb - 创建一个空表,从另一个表中获取列名
- linux - 需要用一个变量比较两个字符串
- java - 从recycleview解析Android Html
- javascript - 未捕获的 SyntaxError:无效的正则表达式:/@|#|$|&|*/:没有可重复的内容
- c++ - 12:00:01 AM 是有效时间吗?
- react-native - react-native:在 ubuntu 18.04 中找不到命令
- javascript - 我必须遍历多级 JSON 并删除某些键
- javascript - getText 和 getAttribute 为量角器中的输入字段获取空值
- pandas - Pandas-Groupby Plot 不适用于对象
- php - 尝试在 Amazon EC2 上升级 sqlite