From 47558ca2b2c1b553265331cfb0d96d3bbd151ba4 Mon Sep 17 00:00:00 2001 From: Ted Wang Date: Thu, 27 Aug 2020 18:22:41 +0800 Subject: 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 --- api/system-current.txt | 4 +++ core/java/android/bluetooth/BluetoothPan.java | 35 +++++++++++++++++++++++++++ core/res/AndroidManifest.xml | 2 ++ non-updatable-api/system-current.txt | 4 +++ 4 files changed, 45 insertions(+) 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 + * + *

This intent will have 1 extra: + *

+ * + *

{@link #EXTRA_TETHERING_STATE} can be any of {@link #TETHERING_STATE_OFF} or + * {@link #TETHERING_STATE_ON} + *

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" /> + 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 { -- cgit v1.2.3-59-g8ed1b