diff options
| author | Treehugger Robot <treehugger-gerrit@google.com> | 2017-04-19 06:08:48 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-04-19 06:08:49 +0000 |
| commit | 7826c08e2194678a03ae72819854911aab89c93a (patch) | |
| tree | f7b183897eaf3052e29fb2420b591364d081c0af /core/java/android | |
| parent | 58b5789cdee9265453c20454219cf2fd927a7d73 (diff) | |
| parent | de74891d1c603326691678ec301c80b4525bc4ef (diff) | |
Merge "Read by UUID for PTS tests (1/5)"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/bluetooth/BluetoothGatt.java | 35 | ||||
| -rw-r--r-- | core/java/android/bluetooth/IBluetoothGatt.aidl | 2 |
2 files changed, 37 insertions, 0 deletions
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java index 1a969b9ca722..9144ae722911 100644 --- a/core/java/android/bluetooth/BluetoothGatt.java +++ b/core/java/android/bluetooth/BluetoothGatt.java @@ -947,6 +947,41 @@ public final class BluetoothGatt implements BluetoothProfile { } /** + * Reads the characteristic using its UUID from the associated remote device. + * + * <p>This is an asynchronous operation. The result of the read operation + * is reported by the {@link BluetoothGattCallback#onCharacteristicRead} + * callback. + * + * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission. + * + * @param uuid UUID of characteristic to read from the remote device + * @return true, if the read operation was initiated successfully + * @hide + */ + public boolean readUsingCharacteristicUuid(UUID uuid, int startHandle, int endHandle) { + if (VDBG) Log.d(TAG, "readUsingCharacteristicUuid() - uuid: " + uuid); + if (mService == null || mClientIf == 0) return false; + + synchronized(mDeviceBusy) { + if (mDeviceBusy) return false; + mDeviceBusy = true; + } + + try { + mService.readUsingCharacteristicUuid(mClientIf, mDevice.getAddress(), + new ParcelUuid(uuid), startHandle, endHandle, AUTHENTICATION_NONE); + } catch (RemoteException e) { + Log.e(TAG,"",e); + mDeviceBusy = false; + return false; + } + + return true; + } + + + /** * Writes a given characteristic and its values to the associated remote device. * * <p>Once the write operation has been completed, the diff --git a/core/java/android/bluetooth/IBluetoothGatt.aidl b/core/java/android/bluetooth/IBluetoothGatt.aidl index 334e88b69fde..38ba9adafe68 100644 --- a/core/java/android/bluetooth/IBluetoothGatt.aidl +++ b/core/java/android/bluetooth/IBluetoothGatt.aidl @@ -77,6 +77,8 @@ interface IBluetoothGatt { void refreshDevice(in int clientIf, in String address); void discoverServices(in int clientIf, in String address); void readCharacteristic(in int clientIf, in String address, in int handle, in int authReq); + void readUsingCharacteristicUuid(in int clientIf, in String address, in ParcelUuid uuid, + in int startHandle, in int endHandle, in int authReq); void writeCharacteristic(in int clientIf, in String address, in int handle, in int writeType, in int authReq, in byte[] value); void readDescriptor(in int clientIf, in String address, in int handle, in int authReq); |
