mProxyConfgs = new ProxyConfiguration[proxyConfigurations.length];
for (int i = 0; i < mProxyConfgs.length; i++) {
ProxyConfiguration pc = proxyConfigurations[i];
// TODO: Invoke the framework api existed in the Android 3.0
switch (pc.getProxyScope()) {
case SSID: {
setWifiProxyConfiguration(pc);
}
break;
default:
break;
}
}
} else {
mProxyConfgs = null;
}
}
private void setWifiProxyConfiguration(ProxyConfiguration[] proxyconfiguration) {
for (ProxyConfiguration pcf : proxyconfiguration) {
setWifiProxyConfiguration(pcf);
}
}
private void setWifiProxyConfiguration(ProxyConfiguration proxyconfiguration) {
if(DEBUG_LOADERS) Log.d(TAG, "setWifiProxyConfiguration()");
// if isnot SSID ,return out
if (proxyconfiguration.getProxyScope() != ProxyConfiguration.ProxyScope.SSID) {
if(DEBUG_LOADERS) Log.d(TAG, "proxyconfiguration.getProxyScope() != ProxyConfiguration.ProxyScope.SSID");
return;
}
WifiManager wm = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
wm.asyncConnect(mContext, mHandler);// DELL, deanye@cienet.com.cn, 5/16/2011, ENTERPROID-111
// add a WifiConfig
List
for (final WifiConfiguration w : wifiConfiguredNetworks) {
if(DEBUG_LOADERS) Log.i(TAG, "" + w.SSID + ":" + proxyconfiguration.getNetworkId());
if (w.SSID.equals(""" + proxyconfiguration.getNetworkId() + """)) {
if(DEBUG_LOADERS) Log.i(TAG, "w.SSID.equals(proxyconfiguration.getNetworkId()):"
+ wifiConfiguredNetworks.indexOf(w));
WifiConfiguration wc = wifiConfiguredNetworks
.get(wifiConfiguredNetworks.indexOf(w));
ProxyProperties proxyproperties = new ProxyProperties(proxyconfiguration
.getProxyURL(), proxyconfiguration.getProxyPort(), proxyconfiguration
.getUrlExclusionList());
LinkProperties linkProperties = new LinkProperties();
linkProperties.clear();
linkProperties.setHttpProxy(proxyproperties);
wc.linkProperties = new LinkProperties(linkProperties);
wc.proxySettings = ProxySettings.STATIC;
if(DEBUG_LOADERS) Log.i(TAG, "mWifiConfiguration.linkProperties.setHttpProxy(proxyproperties);" + wc);
wm.saveNetwork(wc);
}
}
}
静默安装的code:
Java代码
public void installDividePackage(Uri uri, String packageName) {
if (mContext.checkCallingOrSelfPermission(ENTERPROID_PERMISSION) != PackageManager.PERMISSION_GRANTED) {
Log.e(TAG, "installDividePackage() no permission");
return;
}
PackageUriPair packageUriPair = new PackageUriPair();
packageUriPair.packageName = packageName;
packageUriPair.uri = uri;
Message msg = Message.obtain();
msg.obj = packageUriPair;
mInstallDivideHandler.sendMessage(msg);
}
private class PackageUriPair {
public String packageName;
public Uri uri;
}
private class DividePackageInstallObserver extends IPackageI