/* * Copyright 2015, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Binder IPC interface for receiving callbacks related to Bluetooth GATT * client-role operations. * TODO(armansito): Not yet supported. */ oneway interface IBluetoothGattClientCallback { /** * Called as a result of IBluetoothGattClient.registerClient. * |status| will contain BLE_STATUS_SUCCESS (0) if the client was successfully * registered. |client_id| is the owning application's unique GATT client * handle and can be used to perform further operations on the * IBluetoothGattClient interface. */ void onClientRegistered(in int status, in int client_id); /** * Called for each GATT service that was discovered on the remote device. The * device that this service belongs to can be obtained from the |service_id| * structure. |is_primary| is true if this refers to a primary service, * otherwise this refers to a secondary service. */ void onGetService(in boolean is_primary, in GattIdentifier service_id); /** * Called for each include definition that was discovered on the remote * device. */ void onGetIncludedService(in GattIdentifier included_service_id); /** * Called for each characteristic that was discovered on the remote device. * The service that this characteristic belongs to can be obtained from the * |characteristic_id| structure. |properties| contains the bitmask of GATT * characteristic properties as defined in the Bluetooth Core Specification. */ void onGetCharacteristic(in GattIdentifier characteristic_id, in int properties); /** * Called for each descriptor that was discovered on the remote device. The * service and characteristic that this descriptor belongs to can be obtained * from the |descriptor_id| structure. */ void onGetDescriptor(in GattIdentifier descriptor_id); /** * Called to mark the end of GATT service discovery on the remote device with * address |device_address|. |status| will contain BLE_STATUS_SUCCESS (0) if * the operation was successful. */ void onSearchComplete(in String device_address, in int status); /** * Called as a result of IBluetoothGattClient.readCharacteristic. |status| * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error * code in case of an error. |characteristic_id| refers to the characteristic * this operation was performed on. On success, |value| will contain the * characteristic value that was read from the remote device. This argument * can be ignored in case of failure. */ void onCharacteristicRead(in int status, in GattIdentifier characteristic_id, in byte[] value); /** * Called as a result of IBluetoothGattClient.writeCharacteristic. |status| * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error * code in case of an error. |characteristic_id| refers to the characteristic * this operation was performed on. */ void onCharacteristicWrite(in int status, in GattIdentifier characteristic_id); /** * Called as a result of IBluetoothGattClient.endReliableWrite. * |device_address| refers to the remote device that the endReliableWrite * method was called on. |status| will contain BLE_STATUS_SUCCESS (0) on * success and an ATT error code in case of an error. */ void onExecuteWrite(in String device_address, in int status); /** * Called as a result of IBluetoothGattClient.readDescriptor. |status| * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error * code in case of an error. |descriptor_id| refers to the descriptor this * operation was performed on. On success, |value| will contain the * descriptor value that was read from the remote device. This argument * can be ignored in case of failure. */ void onDescriptorRead(in int status, in GattIdentifier descriptor_id, in byte[] value); /** * Called as a result of IBluetoothGattClient.writeDescriptor. |status| * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error * code in case of an error. |descriptor_id| refers to the descriptor this * operation was performed on. */ void onDescriptorWrite(in int status, in GattIdentifier descriptor_id); /** * Called when there is an incoming ATT Handle-Value notification or * indication for the characteristic with identifier |characteristic_id|. */ void onNotify(in GattIdentifier characteristic_id, in byte[] value); }