现在的位置: 首页 > 综合 > 正文

Ice Cream Sandwich 中使用私有 API 修改 WiFi 代理服务器设置

2013年10月14日 ⁄ 综合 ⁄ 共 1005字 ⁄ 字号 评论关闭

在SDK中添加私有API支持

https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

所需权限

android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_STATE

代码

        WifiManager manager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
        manager.asyncConnect(this, new Handler());
        if (!manager.isWifiEnabled()) return;
        List<WifiConfiguration> configurationList = manager.getConfiguredNetworks();
        WifiConfiguration configuration = null;
        int cur = manager.getConnectionInfo().getNetworkId();
        for (int i = 0; i < configurationList.size(); ++i)
        {
            WifiConfiguration wifiConfiguration = configurationList.get(i);
            if (wifiConfiguration.networkId == cur)
            configuration = wifiConfiguration;
        }
        if (configuration == null) return;
        WifiConfiguration config = new WifiConfiguration(configuration);
        config.ipAssignment = WifiConfiguration.IpAssignment.UNASSIGNED;
        config.proxySettings = WifiConfiguration.ProxySettings.STATIC;
        config.linkProperties.clear();
        config.linkProperties.setHttpProxy(new ProxyProperties("127.0.0.1",3128, ""));
        manager.saveNetwork(config);

抱歉!评论已关闭.