Merge "API for config app." into m-wireless-dev

This commit is contained in:
Vinit Deshpande
2015-04-07 22:12:40 +00:00
committed by Android Partner Code Review
3 changed files with 41 additions and 13 deletions

View File

@ -115,6 +115,8 @@ interface IWifiManager
WifiConfiguration getWifiApConfiguration(); WifiConfiguration getWifiApConfiguration();
WifiConfiguration buildWifiConfig(String uriString, String mimeType, in byte[] data);
void setWifiApConfiguration(in WifiConfiguration wifiConfig); void setWifiApConfiguration(in WifiConfiguration wifiConfig);
void startWifi(); void startWifi();

View File

@ -24,6 +24,7 @@ import android.net.StaticIpConfiguration;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import java.util.HashMap; import java.util.HashMap;
import java.util.BitSet; import java.util.BitSet;
@ -863,41 +864,52 @@ public class WifiConfiguration implements Parcelable {
* @hide * @hide
*/ */
public boolean isValid() { public boolean isValid() {
String reason = strIsValid();
if (reason != null) {
Log.e("WFII", "WiFi Config not valid: " + reason);
return false;
}
else {
return true;
}
}
private String strIsValid() {
if (allowedKeyManagement == null) if (allowedKeyManagement == null)
return false; return "allowed kmgmt";
if (allowedKeyManagement.cardinality() > 1) { if (allowedKeyManagement.cardinality() > 1) {
if (allowedKeyManagement.cardinality() != 2) { if (allowedKeyManagement.cardinality() != 2) {
return false; return "cardinality != 2";
} }
if (allowedKeyManagement.get(KeyMgmt.WPA_EAP) == false) { if (!allowedKeyManagement.get(KeyMgmt.WPA_EAP)) {
return false; return "not WPA_EAP";
} }
if ((allowedKeyManagement.get(KeyMgmt.IEEE8021X) == false) if ((!allowedKeyManagement.get(KeyMgmt.IEEE8021X))
&& (allowedKeyManagement.get(KeyMgmt.WPA_PSK) == false)) { && (!allowedKeyManagement.get(KeyMgmt.WPA_PSK))) {
return false; return "not PSK or 8021X";
} }
} }
if (TextUtils.isEmpty(FQDN) == false) { if (!TextUtils.isEmpty(FQDN)) {
/* this is passpoint configuration; it must not have an SSID */ /* this is passpoint configuration; it must not have an SSID */
if (TextUtils.isEmpty(SSID) == false) { if (!TextUtils.isEmpty(SSID)) {
return false; return "no SSID";
} }
/* this is passpoint configuration; it must have a providerFriendlyName */ /* this is passpoint configuration; it must have a providerFriendlyName */
if (TextUtils.isEmpty(providerFriendlyName)) { if (TextUtils.isEmpty(providerFriendlyName)) {
return false; return "no provider friendly name";
} }
/* this is passpoint configuration; it must have enterprise config */ /* this is passpoint configuration; it must have enterprise config */
if (enterpriseConfig == null if (enterpriseConfig == null
|| enterpriseConfig.getEapMethod() == WifiEnterpriseConfig.Eap.NONE ) { || enterpriseConfig.getEapMethod() == WifiEnterpriseConfig.Eap.NONE ) {
return false; return "no enterprise config";
} }
} }
// TODO: Add more checks // TODO: Add more checks
return true; return null;
} }
/** /**

View File

@ -1479,6 +1479,20 @@ public class WifiManager {
} }
} }
/**
* Builds a WifiConfiguration from Hotspot 2.0 MIME file.
* @return AP details in WifiConfiguration
*
* @hide Dont open yet
*/
public WifiConfiguration buildWifiConfig(String uriString, String mimeType, byte[] data) {
try {
return mService.buildWifiConfig(uriString, mimeType, data);
} catch (RemoteException e) {
return null;
}
}
/** /**
* Sets the Wi-Fi AP Configuration. * Sets the Wi-Fi AP Configuration.
* @return {@code true} if the operation succeeded, {@code false} otherwise * @return {@code true} if the operation succeeded, {@code false} otherwise