diff options
| author | 2020-08-27 18:22:41 +0800 | |
|---|---|---|
| committer | 2020-09-16 10:31:25 +0800 | |
| commit | 47558ca2b2c1b553265331cfb0d96d3bbd151ba4 (patch) | |
| tree | 0d535f55a230e2a74c888ab2b6432faeeba96a8c | |
| parent | fc6fbde5dfaf9690251a8a399d627c45ac03f7cd (diff) | |
Add action for Bluetooth tethering state changed
Add new action for Bluetooth tethering state changed and extra for
broadcasting Bluetooth tethering state changed.
Tag: #feature
Bug: 138688805
Test: Manual
Change-Id: Ie0f848448f9717a6a1233d0dbb0785da7d30dc81
| -rwxr-xr-x | api/system-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/bluetooth/BluetoothPan.java | 35 | ||||
| -rw-r--r-- | core/res/AndroidManifest.xml | 2 | ||||
| -rw-r--r-- | non-updatable-api/system-current.txt | 4 |
4 files changed, 45 insertions, 0 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index c0364a3de18f..6642bd107c86 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -1578,12 +1578,16 @@ package android.bluetooth { method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setBluetoothTethering(boolean); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED"; + field public static final String ACTION_TETHERING_STATE_CHANGED = "android.bluetooth.action.TETHERING_STATE_CHANGED"; field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE"; + field public static final String EXTRA_TETHERING_STATE = "android.bluetooth.extra.TETHERING_STATE"; field public static final int LOCAL_NAP_ROLE = 1; // 0x1 field public static final int LOCAL_PANU_ROLE = 2; // 0x2 field public static final int PAN_ROLE_NONE = 0; // 0x0 field public static final int REMOTE_NAP_ROLE = 1; // 0x1 field public static final int REMOTE_PANU_ROLE = 2; // 0x2 + field public static final int TETHERING_STATE_OFF = 1; // 0x1 + field public static final int TETHERING_STATE_ON = 2; // 0x2 } public class BluetoothPbap implements android.bluetooth.BluetoothProfile { diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java index bfc28fae6e65..4698b077ff55 100644 --- a/core/java/android/bluetooth/BluetoothPan.java +++ b/core/java/android/bluetooth/BluetoothPan.java @@ -89,6 +89,33 @@ public final class BluetoothPan implements BluetoothProfile { @SuppressLint("ActionValue") public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE"; + /** + * Intent used to broadcast the change in tethering state of the Pan + * Profile + * + * <p>This intent will have 1 extra: + * <ul> + * <li> {@link #EXTRA_TETHERING_STATE} - The current state of Bluetooth + * tethering. </li> + * </ul> + * + * <p> {@link #EXTRA_TETHERING_STATE} can be any of {@link #TETHERING_STATE_OFF} or + * {@link #TETHERING_STATE_ON} + * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to + * receive. + */ + @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) + public static final String ACTION_TETHERING_STATE_CHANGED = + "android.bluetooth.action.TETHERING_STATE_CHANGED"; + + /** + * Extra for {@link #ACTION_TETHERING_STATE_CHANGED} intent + * The tethering state of the PAN profile. + * It can be one of {@link #TETHERING_STATE_OFF} or {@link #TETHERING_STATE_ON}. + */ + public static final String EXTRA_TETHERING_STATE = + "android.bluetooth.extra.TETHERING_STATE"; + /** @hide */ @IntDef({PAN_ROLE_NONE, LOCAL_NAP_ROLE, LOCAL_PANU_ROLE}) @Retention(RetentionPolicy.SOURCE) @@ -114,6 +141,14 @@ public final class BluetoothPan implements BluetoothProfile { public static final int REMOTE_PANU_ROLE = 2; + /** @hide **/ + @IntDef({TETHERING_STATE_OFF, TETHERING_STATE_ON}) + @Retention(RetentionPolicy.SOURCE) + public @interface TetheringState{} + + public static final int TETHERING_STATE_OFF = 1; + + public static final int TETHERING_STATE_ON = 2; /** * Return codes for the connect and disconnect Bluez / Dbus calls. * diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index f1e186813ad8..fba9384030b7 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -236,6 +236,8 @@ android:name="com.android.bluetooth.BluetoothMapContentObserver.action.MESSAGE_DELIVERY" /> <protected-broadcast android:name="android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED" /> + <protected-broadcast + android:name="android.bluetooth.action.TETHERING_STATE_CHANGED" /> <protected-broadcast android:name="android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED" /> <protected-broadcast android:name="android.bluetooth.pbapclient.profile.action.CONNECTION_STATE_CHANGED" /> <protected-broadcast android:name="android.bluetooth.sap.profile.action.CONNECTION_STATE_CHANGED" /> diff --git a/non-updatable-api/system-current.txt b/non-updatable-api/system-current.txt index 31b71fb5ca4d..607094e094ca 100644 --- a/non-updatable-api/system-current.txt +++ b/non-updatable-api/system-current.txt @@ -1526,12 +1526,16 @@ package android.bluetooth { method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setBluetoothTethering(boolean); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int); field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED"; + field public static final String ACTION_TETHERING_STATE_CHANGED = "android.bluetooth.action.TETHERING_STATE_CHANGED"; field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE"; + field public static final String EXTRA_TETHERING_STATE = "android.bluetooth.extra.TETHERING_STATE"; field public static final int LOCAL_NAP_ROLE = 1; // 0x1 field public static final int LOCAL_PANU_ROLE = 2; // 0x2 field public static final int PAN_ROLE_NONE = 0; // 0x0 field public static final int REMOTE_NAP_ROLE = 1; // 0x1 field public static final int REMOTE_PANU_ROLE = 2; // 0x2 + field public static final int TETHERING_STATE_OFF = 1; // 0x1 + field public static final int TETHERING_STATE_ON = 2; // 0x2 } public class BluetoothPbap implements android.bluetooth.BluetoothProfile { |