diff options
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Tethering.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index bef48d6734fa..6f67b6fae8fc 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -270,14 +270,16 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering trackNewTetherableInterface(iface, interfaceType); } } else { - if (interfaceType == ConnectivityManager.TETHERING_USB) { - // ignore usb0 down after enabling RNDIS - // we will handle disconnect in interfaceRemoved instead - if (VDBG) Log.d(TAG, "ignore interface down for " + iface); - } else if (tetherState != null) { + if (interfaceType == ConnectivityManager.TETHERING_BLUETOOTH) { tetherState.mStateMachine.sendMessage( TetherInterfaceStateMachine.CMD_INTERFACE_DOWN); mTetherStates.remove(iface); + } else { + // Ignore usb0 down after enabling RNDIS. + // We will handle disconnect in interfaceRemoved. + // Similarly, ignore interface down for WiFi. We monitor WiFi AP status + // through the WifiManager.WIFI_AP_STATE_CHANGED_ACTION intent. + if (VDBG) Log.d(TAG, "ignore interface down for " + iface); } } } |