From 6c2260b3af3a9243aa7f04cf03106f31817cb4c1 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Tue, 19 Jul 2011 13:04:47 -0700 Subject: Fix USB tethering The previous approach no longer works with the new USB drivers, since the usb0 interface is no longer enabled by default. This introduced a chicken & egg problem - usb0 will not be enabled until the user tries to start tethering, but Settings will not enable the checkbox unless usb0 is enabled. To fix this we add an explicit call to start USB tethering in the connectivity manager. This will enable RNDIS if necessary and then bring up tethering once usb0 is enabled. Change-Id: Iae1f733366aa6b0dafa66d4c97207794173ef54b Signed-off-by: Mike Lockwood --- core/java/android/net/ConnectivityManager.java | 11 +++++++++++ core/java/android/net/IConnectivityManager.aidl | 2 ++ 2 files changed, 13 insertions(+) (limited to 'core/java/android') diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index ce6f697..a564d97 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -653,6 +653,17 @@ public class ConnectivityManager { } } + /** + * {@hide} + */ + public int setUsbTethering(boolean enable) { + try { + return mService.setUsbTethering(enable); + } catch (RemoteException e) { + return TETHER_ERROR_SERVICE_UNAVAIL; + } + } + /** {@hide} */ public static final int TETHER_ERROR_NO_ERROR = 0; /** {@hide} */ diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index d95fc8d..b1d99a4 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -88,6 +88,8 @@ interface IConnectivityManager String[] getTetherableBluetoothRegexs(); + int setUsbTethering(boolean enable); + void requestNetworkTransitionWakelock(in String forWhom); void reportInetCondition(int networkType, int percentage); -- cgit v1.1