diff options
| author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2019-12-12 21:33:56 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2019-12-12 21:33:56 +0000 |
| commit | 7daf421abd6a2390ecafb44288f491a717645d24 (patch) | |
| tree | fec9b3bc7c127fdda424d381f840d2549e07a4ba /core/java/android/bluetooth/BluetoothDevice.java | |
| parent | 1da70a90768bec8900e66166247832976f25a809 (diff) | |
| parent | 10fd57e65962f002bf9e33c1bb11a44dace76b3e (diff) | |
Merge "Resolve BluetoothDevice hidden API usages by Settings" am: ce656f7754 am: 10fd57e659
Change-Id: I001128eba5499a0a080707d00c1627335eae7514
Diffstat (limited to 'core/java/android/bluetooth/BluetoothDevice.java')
| -rw-r--r-- | core/java/android/bluetooth/BluetoothDevice.java | 127 |
1 files changed, 70 insertions, 57 deletions
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index 9efaca1e1abc..7396a1161930 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -17,6 +17,7 @@ package android.bluetooth; import android.Manifest; +import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; @@ -33,8 +34,12 @@ import android.os.Process; import android.os.RemoteException; import android.util.Log; +import com.android.internal.annotations.VisibleForTesting; + import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.UUID; /** @@ -771,6 +776,13 @@ public final class BluetoothDevice implements Parcelable { @UnsupportedAppUsage public static final String EXTRA_SDP_SEARCH_STATUS = "android.bluetooth.device.extra.SDP_SEARCH_STATUS"; + + /** @hide */ + @IntDef(prefix = "ACCESS_", value = {ACCESS_UNKNOWN, + ACCESS_ALLOWED, ACCESS_REJECTED}) + @Retention(RetentionPolicy.SOURCE) + public @interface AccessPermission{} + /** * For {@link #getPhonebookAccessPermission}, {@link #setPhonebookAccessPermission}, * {@link #getMessageAccessPermission} and {@link #setMessageAccessPermission}. @@ -1114,15 +1126,14 @@ public final class BluetoothDevice implements Parcelable { /** * 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 */ + @SystemApi @RequiresPermission(Manifest.permission.BLUETOOTH) - @UnsupportedAppUsage public int getBatteryLevel() { final IBluetooth service = sService; if (service == null) { @@ -1205,8 +1216,15 @@ public final class BluetoothDevice implements Parcelable { return false; } - /** @hide */ - @UnsupportedAppUsage + /** + * Gets whether bonding was initiated locally + * + * @return true if bonding is initiated locally, false otherwise + * + * @hide + */ + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH) public boolean isBondingInitiatedLocally() { final IBluetooth service = sService; if (service == null) { @@ -1498,15 +1516,20 @@ public final class BluetoothDevice implements Parcelable { return false; } - /** @hide */ - @UnsupportedAppUsage - public boolean setPasskey(int passkey) { - //TODO(BT) - /* - try { - return sService.setPasskey(this, true, 4, passkey); - } catch (RemoteException e) {Log.e(TAG, "", e);}*/ - return false; + /** + * Set the pin during pairing when the pairing method is {@link #PAIRING_VARIANT_PIN} + * + * @return true pin has been set false for error + * @hide + */ + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN) + public boolean setPin(@Nullable String pin) { + byte[] pinBytes = convertPinToBytes(pin); + if (pinBytes == null) { + return false; + } + return setPin(pinBytes); } /** @@ -1529,22 +1552,18 @@ public final class BluetoothDevice implements Parcelable { return false; } - /** @hide */ - public boolean setRemoteOutOfBandData() { - // TODO(BT) - /* - try { - return sService.setRemoteOutOfBandData(this); - } catch (RemoteException e) {Log.e(TAG, "", e);}*/ - return false; - } - - /** @hide */ - @UnsupportedAppUsage - public boolean cancelPairingUserInput() { + /** + * Cancels pairing to this device + * + * @return true if pairing cancelled successfully, false otherwise + * + * @hide + */ + @SystemApi + public boolean cancelPairing() { final IBluetooth service = sService; if (service == null) { - Log.e(TAG, "BT not enabled. Cannot create pairing user input"); + Log.e(TAG, "BT not enabled. Cannot cancel pairing"); return false; } try { @@ -1555,17 +1574,6 @@ public final class BluetoothDevice implements Parcelable { return false; } - /** @hide */ - @UnsupportedAppUsage - public boolean isBluetoothDock() { - // TODO(BT) - /* - try { - return sService.isBluetoothDock(this); - } catch (RemoteException e) {Log.e(TAG, "", e);}*/ - return false; - } - boolean isBluetoothEnabled() { boolean ret = false; BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); @@ -1576,13 +1584,14 @@ public final class BluetoothDevice implements Parcelable { } /** - * Requires {@link android.Manifest.permission#BLUETOOTH}. + * Gets whether the phonebook access is allowed for this bluetooth device * * @return Whether the phonebook access is allowed to this device. Can be {@link * #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}. * @hide */ - @UnsupportedAppUsage + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH) public int getPhonebookAccessPermission() { final IBluetooth service = sService; if (service == null) { @@ -1685,14 +1694,14 @@ public final class BluetoothDevice implements Parcelable { } /** - * Requires {@link android.Manifest.permission#BLUETOOTH}. + * Gets whether message access is allowed to this bluetooth device * - * @return Whether the message access is allowed to this device. Can be {@link #ACCESS_UNKNOWN}, - * {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}. + * @return Whether the message access is allowed to this device. * @hide */ - @UnsupportedAppUsage - public int getMessageAccessPermission() { + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH) + public @AccessPermission int getMessageAccessPermission() { final IBluetooth service = sService; if (service == null) { return ACCESS_UNKNOWN; @@ -1707,15 +1716,18 @@ public final class BluetoothDevice implements Parcelable { /** * Sets whether the message access is allowed to this device. - * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}. * - * @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link - * #ACCESS_REJECTED}. + * @param value is the value we are setting the message access permission to * @return Whether the value has been successfully set. * @hide */ - @UnsupportedAppUsage - public boolean setMessageAccessPermission(int value) { + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED) + public boolean setMessageAccessPermission(@AccessPermission int value) { + // Validates param value is one of the accepted constants + if (value != ACCESS_ALLOWED && value != ACCESS_REJECTED && value != ACCESS_UNKNOWN) { + throw new IllegalArgumentException(value + "is not a valid AccessPermission value"); + } final IBluetooth service = sService; if (service == null) { return false; @@ -1729,13 +1741,14 @@ public final class BluetoothDevice implements Parcelable { } /** - * Requires {@link android.Manifest.permission#BLUETOOTH}. + * Gets whether sim access is allowed for this bluetooth device * - * @return Whether the Sim access is allowed to this device. Can be {@link #ACCESS_UNKNOWN}, - * {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}. + * @return Whether the Sim access is allowed to this device. * @hide */ - public int getSimAccessPermission() { + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH) + public @AccessPermission int getSimAccessPermission() { final IBluetooth service = sService; if (service == null) { return ACCESS_UNKNOWN; @@ -1750,14 +1763,14 @@ public final class BluetoothDevice implements Parcelable { /** * Sets whether the Sim access is allowed to this device. - * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}. * * @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link * #ACCESS_REJECTED}. * @return Whether the value has been successfully set. * @hide */ - @UnsupportedAppUsage + @SystemApi + @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSimAccessPermission(int value) { final IBluetooth service = sService; if (service == null) { @@ -1988,7 +2001,7 @@ public final class BluetoothDevice implements Parcelable { * @return the pin code as a UTF-8 byte array, or null if it is an invalid Bluetooth pin. * @hide */ - @UnsupportedAppUsage + @VisibleForTesting public static byte[] convertPinToBytes(String pin) { if (pin == null) { return null; |
