Support WiFi only device at runtime.

To date WiFi only devices were defined by the list of networkAttributes
in config.xml overriden in on a per-device basis. This change is the
simplest change needed to determine this at runtime and therefore allowing
a single build to support the two different configurations.

Bug: 8562845
Change-Id: I34de5c6accc718b199c13815537de1debfe3dc91
This commit is contained in:
Wink Saville
2013-04-23 14:26:51 -07:00
parent 75267c4ee9
commit 00fe5095f5

View File

@@ -432,6 +432,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
mRadioAttributes[r.mType] = r; mRadioAttributes[r.mType] = r;
} }
// TODO: What is the "correct" way to do determine if this is a wifi only device?
boolean wifiOnly = SystemProperties.getBoolean("ro.radio.noril", false);
log("wifiOnly=" + wifiOnly);
String[] naStrings = context.getResources().getStringArray( String[] naStrings = context.getResources().getStringArray(
com.android.internal.R.array.networkAttributes); com.android.internal.R.array.networkAttributes);
for (String naString : naStrings) { for (String naString : naStrings) {
@@ -442,6 +445,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
n.type); n.type);
continue; continue;
} }
if (wifiOnly && ConnectivityManager.isNetworkTypeMobile(n.type)) {
log("networkAttributes - ignoring mobile as this dev is wifiOnly " +
n.type);
continue;
}
if (mNetConfigs[n.type] != null) { if (mNetConfigs[n.type] != null) {
loge("Error in networkAttributes - ignoring attempt to redefine type " + loge("Error in networkAttributes - ignoring attempt to redefine type " +
n.type); n.type);