Merge "Fix tethering when switching default connection" into honeycomb
This commit is contained in:
committed by
Android (Google) Code Review
commit
d14239a2fb
@ -31,6 +31,7 @@ import android.net.ConnectivityManager;
|
||||
import android.net.InterfaceConfiguration;
|
||||
import android.net.IConnectivityManager;
|
||||
import android.net.INetworkManagementEventObserver;
|
||||
import android.net.LinkProperties;
|
||||
import android.net.NetworkInfo;
|
||||
import android.os.Binder;
|
||||
import android.os.Environment;
|
||||
@ -1219,7 +1220,20 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
}
|
||||
protected String findActiveUpstreamIface() {
|
||||
// check for what iface we can use - if none found switch to error.
|
||||
IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
|
||||
IBinder b = ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
|
||||
IConnectivityManager cm = IConnectivityManager.Stub.asInterface(b);
|
||||
|
||||
try {
|
||||
LinkProperties defaultProp = cm.getActiveLinkProperties();
|
||||
if (defaultProp != null) {
|
||||
String iface = defaultProp.getInterfaceName();
|
||||
for(String regex : mUpstreamIfaceRegexs) {
|
||||
if (iface.matches(regex)) return iface;
|
||||
}
|
||||
}
|
||||
} catch (RemoteException e) { }
|
||||
|
||||
b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
|
||||
INetworkManagementService service = INetworkManagementService.Stub.asInterface(b);
|
||||
|
||||
String[] ifaces = new String[0];
|
||||
@ -1390,7 +1404,8 @@ public class Tethering extends INetworkManagementEventObserver.Stub {
|
||||
}
|
||||
break;
|
||||
case CMD_UPSTREAM_CHANGED:
|
||||
mTryCell = WAIT_FOR_NETWORK_TO_SETTLE;
|
||||
// need to try DUN immediately if Wifi goes down
|
||||
mTryCell = !WAIT_FOR_NETWORK_TO_SETTLE;
|
||||
chooseUpstreamType(mTryCell);
|
||||
mTryCell = !mTryCell;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user