Loading core/java/android/bluetooth/BluetoothDevice.java +49 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,34 @@ public final class BluetoothDevice implements Parcelable { public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED"; /** * Broadcast Action: Indicates the battery level of a remote device has * been retrieved for the first time, or changed since the last retrieval * <p>Always contains the extra fields {@link #EXTRA_DEVICE} and {@link * #EXTRA_BATTERY_LEVEL}. * <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive. * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_BATTERY_LEVEL_CHANGED = "android.bluetooth.device.action.BATTERY_LEVEL_CHANGED"; /** * Used as an Integer extra field in {@link #ACTION_BATTERY_LEVEL_CHANGED} * intent. It contains the most recently retrieved battery level information * ranging from 0% to 100% for a remote device, {@link #BATTERY_LEVEL_UNKNOWN} * when the valid is unknown or there is an error * @hide */ public static final String EXTRA_BATTERY_LEVEL = "android.bluetooth.device.extra.BATTERY_LEVEL"; /** * Used as the unknown value for {@link #EXTRA_BATTERY_LEVEL} and {@link #getBatteryLevel()} * @hide */ public static final int BATTERY_LEVEL_UNKNOWN = -1; /** * Used as a Parcelable {@link BluetoothDevice} extra field in every intent * broadcast by this class. It contains the {@link BluetoothDevice} that Loading Loading @@ -860,6 +888,27 @@ public final class BluetoothDevice implements Parcelable { return name; } /** * Get the most recent identified battery level of this Bluetooth device * <p>Requires {@link android.Manifest.permission#BLUETOOTH} * * @return Battery level in percents from 0 to 100, or {@link #BATTERY_LEVEL_UNKNOWN} if * Bluetooth is disabled, or device is disconnected, or does not have any battery * reporting service, or return value is invalid * @hide */ @RequiresPermission(Manifest.permission.BLUETOOTH) public int getBatteryLevel() { if (sService == null) { Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level"); return BATTERY_LEVEL_UNKNOWN; } try { return sService.getBatteryLevel(this); } catch (RemoteException e) {Log.e(TAG, "", e);} return BATTERY_LEVEL_UNKNOWN; } /** * Start the bonding (pairing) process with the remote device. * <p>This is an asynchronous call, it will return immediately. Register Loading core/java/android/bluetooth/BluetoothHeadset.java +5 −6 Original line number Diff line number Diff line Loading @@ -227,14 +227,13 @@ public final class BluetoothHeadset implements BluetoothProfile { * * <p>This intent will have 3 extras: * <ul> * <li> {@link #EXTRA_IND_ID} - The Assigned number of headset Indicator which is supported by the headset ( as indicated by AT+BIND command in the SLC sequence).or whose value is changed (indicated by AT+BIEV command)</li> * <li> {@link #EXTRA_IND_VALUE}- The updated value of headset indicator. </li> * <li> {@link #EXTRA_HF_INDICATORS_IND_ID} - The Assigned number of headset Indicator which * is supported by the headset ( as indicated by AT+BIND command in the SLC * sequence).or whose value is changed (indicated by AT+BIEV command) </li> * <li> {@link #EXTRA_HF_INDICATORS_IND_VALUE}- The updated value of headset indicator. </li> * <li> {@link BluetoothDevice#EXTRA_DEVICE} - The remote device. </li> * </ul> * <p>{@link #EXTRA_IND_ID} is defined by Bluetooth SIG and each of the indicators are * <p>{@link #EXTRA_HF_INDICATORS_IND_ID} is defined by Bluetooth SIG and each of the indicators are * given an assigned number. Below shows the assigned number of Indicator added so far * - Enhanced Safety - 1 * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to Loading core/java/android/bluetooth/IBluetooth.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ interface IBluetooth ParcelUuid[] getRemoteUuids(in BluetoothDevice device); boolean fetchRemoteUuids(in BluetoothDevice device); boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid); int getBatteryLevel(in BluetoothDevice device); boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode); boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] Loading core/res/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_CANCEL" /> <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_REQUEST" /> <protected-broadcast android:name="android.bluetooth.device.action.SDP_RECORD" /> <protected-broadcast android:name="android.bluetooth.device.action.BATTERY_LEVEL_CHANGED" /> <protected-broadcast android:name="android.bluetooth.devicepicker.action.LAUNCH" /> <protected-broadcast android:name="android.bluetooth.devicepicker.action.DEVICE_SELECTED" /> <protected-broadcast Loading Loading
core/java/android/bluetooth/BluetoothDevice.java +49 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,34 @@ public final class BluetoothDevice implements Parcelable { public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED"; /** * Broadcast Action: Indicates the battery level of a remote device has * been retrieved for the first time, or changed since the last retrieval * <p>Always contains the extra fields {@link #EXTRA_DEVICE} and {@link * #EXTRA_BATTERY_LEVEL}. * <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive. * @hide */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_BATTERY_LEVEL_CHANGED = "android.bluetooth.device.action.BATTERY_LEVEL_CHANGED"; /** * Used as an Integer extra field in {@link #ACTION_BATTERY_LEVEL_CHANGED} * intent. It contains the most recently retrieved battery level information * ranging from 0% to 100% for a remote device, {@link #BATTERY_LEVEL_UNKNOWN} * when the valid is unknown or there is an error * @hide */ public static final String EXTRA_BATTERY_LEVEL = "android.bluetooth.device.extra.BATTERY_LEVEL"; /** * Used as the unknown value for {@link #EXTRA_BATTERY_LEVEL} and {@link #getBatteryLevel()} * @hide */ public static final int BATTERY_LEVEL_UNKNOWN = -1; /** * Used as a Parcelable {@link BluetoothDevice} extra field in every intent * broadcast by this class. It contains the {@link BluetoothDevice} that Loading Loading @@ -860,6 +888,27 @@ public final class BluetoothDevice implements Parcelable { return name; } /** * Get the most recent identified battery level of this Bluetooth device * <p>Requires {@link android.Manifest.permission#BLUETOOTH} * * @return Battery level in percents from 0 to 100, or {@link #BATTERY_LEVEL_UNKNOWN} if * Bluetooth is disabled, or device is disconnected, or does not have any battery * reporting service, or return value is invalid * @hide */ @RequiresPermission(Manifest.permission.BLUETOOTH) public int getBatteryLevel() { if (sService == null) { Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level"); return BATTERY_LEVEL_UNKNOWN; } try { return sService.getBatteryLevel(this); } catch (RemoteException e) {Log.e(TAG, "", e);} return BATTERY_LEVEL_UNKNOWN; } /** * Start the bonding (pairing) process with the remote device. * <p>This is an asynchronous call, it will return immediately. Register Loading
core/java/android/bluetooth/BluetoothHeadset.java +5 −6 Original line number Diff line number Diff line Loading @@ -227,14 +227,13 @@ public final class BluetoothHeadset implements BluetoothProfile { * * <p>This intent will have 3 extras: * <ul> * <li> {@link #EXTRA_IND_ID} - The Assigned number of headset Indicator which is supported by the headset ( as indicated by AT+BIND command in the SLC sequence).or whose value is changed (indicated by AT+BIEV command)</li> * <li> {@link #EXTRA_IND_VALUE}- The updated value of headset indicator. </li> * <li> {@link #EXTRA_HF_INDICATORS_IND_ID} - The Assigned number of headset Indicator which * is supported by the headset ( as indicated by AT+BIND command in the SLC * sequence).or whose value is changed (indicated by AT+BIEV command) </li> * <li> {@link #EXTRA_HF_INDICATORS_IND_VALUE}- The updated value of headset indicator. </li> * <li> {@link BluetoothDevice#EXTRA_DEVICE} - The remote device. </li> * </ul> * <p>{@link #EXTRA_IND_ID} is defined by Bluetooth SIG and each of the indicators are * <p>{@link #EXTRA_HF_INDICATORS_IND_ID} is defined by Bluetooth SIG and each of the indicators are * given an assigned number. Below shows the assigned number of Indicator added so far * - Enhanced Safety - 1 * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to Loading
core/java/android/bluetooth/IBluetooth.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ interface IBluetooth ParcelUuid[] getRemoteUuids(in BluetoothDevice device); boolean fetchRemoteUuids(in BluetoothDevice device); boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid); int getBatteryLevel(in BluetoothDevice device); boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode); boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] Loading
core/res/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_CANCEL" /> <protected-broadcast android:name="android.bluetooth.device.action.CONNECTION_ACCESS_REQUEST" /> <protected-broadcast android:name="android.bluetooth.device.action.SDP_RECORD" /> <protected-broadcast android:name="android.bluetooth.device.action.BATTERY_LEVEL_CHANGED" /> <protected-broadcast android:name="android.bluetooth.devicepicker.action.LAUNCH" /> <protected-broadcast android:name="android.bluetooth.devicepicker.action.DEVICE_SELECTED" /> <protected-broadcast Loading