diff options
author | fredc <fredc@broadcom.com> | 2012-04-12 00:02:00 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-07-16 21:20:54 -0700 |
commit | 0f42037eb7b5118015c2caca635538324ccf0ccf (patch) | |
tree | 46a7ba36216a2cb617541ec68f18b413419e148f /services/java/com/android/server/NetworkManagementService.java | |
parent | 919a4c6264b733585152ce1dc6f868c1093d368b (diff) | |
download | frameworks_base-0f42037eb7b5118015c2caca635538324ccf0ccf.zip frameworks_base-0f42037eb7b5118015c2caca635538324ccf0ccf.tar.gz frameworks_base-0f42037eb7b5118015c2caca635538324ccf0ccf.tar.bz2 |
Non persistent adapter service
Change-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5
Conflicts:
core/java/android/bluetooth/BluetoothInputDevice.java
Conflicts:
core/java/com/android/internal/app/ShutdownThread.java
services/java/com/android/server/SystemServer.java
Conflicts:
services/java/com/android/server/SystemServer.java
services/java/com/android/server/pm/ShutdownThread.java
Diffstat (limited to 'services/java/com/android/server/NetworkManagementService.java')
-rw-r--r-- | services/java/com/android/server/NetworkManagementService.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java index 09792f5..ccba0d2 100644 --- a/services/java/com/android/server/NetworkManagementService.java +++ b/services/java/com/android/server/NetworkManagementService.java @@ -78,6 +78,7 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.StringTokenizer; import java.util.concurrent.CountDownLatch; +import android.bluetooth.BluetoothTetheringDataTracker; /** * @hide @@ -779,6 +780,34 @@ public class NetworkManagementService extends INetworkManagementService.Stub event.checkCode(TetherStatusResult); return event.getMessage().endsWith("started"); } + public void startReverseTethering(String iface) + throws IllegalStateException { + if (DBG) Slog.d(TAG, "startReverseTethering in"); + mContext.enforceCallingOrSelfPermission( + android.Manifest.permission.CHANGE_NETWORK_STATE, "NetworkManagementService"); + // cmd is "tether start first_start first_stop second_start second_stop ..." + // an odd number of addrs will fail + String cmd = "tether start-reverse"; + cmd += " " + iface; + if (DBG) Slog.d(TAG, "startReverseTethering cmd: " + cmd); + try { + mConnector.doCommand(cmd); + } catch (NativeDaemonConnectorException e) { + throw new IllegalStateException("Unable to communicate to native daemon"); + } + BluetoothTetheringDataTracker.getInstance().startReverseTether(iface); + + } + public void stopReverseTethering() throws IllegalStateException { + mContext.enforceCallingOrSelfPermission( + android.Manifest.permission.CHANGE_NETWORK_STATE, "NetworkManagementService"); + try { + mConnector.doCommand("tether stop-reverse"); + } catch (NativeDaemonConnectorException e) { + throw new IllegalStateException("Unable to communicate to native daemon to stop tether"); + } + BluetoothTetheringDataTracker.getInstance().stopReverseTether(); + } @Override public void tetherInterface(String iface) { |