Home | History | Annotate | Download | only in doc
      1 /*
      2  * Copyright (C) 2015, The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *     http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 /**
     18  * Binder IPC interface for receiving callbacks related to Bluetooth GATT
     19  * client-role operations.
     20  * TODO(armansito): Not yet supported.
     21  */
     22 oneway interface IBluetoothGattClientCallback {
     23   /**
     24    * Called as a result of IBluetoothGattClient.registerClient.
     25    * |status| will contain BLE_STATUS_SUCCESS (0) if the client was successfully
     26    * registered. |client_id| is the owning application's unique GATT client
     27    * handle and can be used to perform further operations on the
     28    * IBluetoothGattClient interface.
     29    */
     30   void onClientRegistered(in int status, in int client_id);
     31 
     32   /**
     33    * Called for each GATT service that was discovered on the remote device. The
     34    * device that this service belongs to can be obtained from the |service_id|
     35    * structure. |is_primary| is true if this refers to a primary service,
     36    * otherwise this refers to a secondary service.
     37    */
     38   void onGetService(in boolean is_primary, in GattIdentifier service_id);
     39 
     40   /**
     41    * Called for each include definition that was discovered on the remote
     42    * device.
     43    */
     44   void onGetIncludedService(in GattIdentifier included_service_id);
     45 
     46   /**
     47    * Called for each characteristic that was discovered on the remote device.
     48    * The service that this characteristic belongs to can be obtained from the
     49    * |characteristic_id| structure. |properties| contains the bitmask of GATT
     50    * characteristic properties as defined in the Bluetooth Core Specification.
     51    */
     52   void onGetCharacteristic(in GattIdentifier characteristic_id,
     53                            in int properties);
     54 
     55   /**
     56    * Called for each descriptor that was discovered on the remote device. The
     57    * service and characteristic that this descriptor belongs to can be obtained
     58    * from the |descriptor_id| structure.
     59    */
     60   void onGetDescriptor(in GattIdentifier descriptor_id);
     61 
     62   /**
     63    * Called to mark the end of GATT service discovery on the remote device with
     64    * address |device_address|. |status| will contain BLE_STATUS_SUCCESS (0) if
     65    * the operation was successful.
     66    */
     67   void onSearchComplete(in String device_address, in int status);
     68 
     69   /**
     70    * Called as a result of IBluetoothGattClient.readCharacteristic. |status|
     71    * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error
     72    * code in case of an error. |characteristic_id| refers to the characteristic
     73    * this operation was performed on. On success, |value| will contain the
     74    * characteristic value that was read from the remote device. This argument
     75    * can be ignored in case of failure.
     76    */
     77   void onCharacteristicRead(in int status, in GattIdentifier characteristic_id,
     78                             in byte[] value);
     79 
     80   /**
     81    * Called as a result of IBluetoothGattClient.writeCharacteristic. |status|
     82    * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error
     83    * code in case of an error. |characteristic_id| refers to the characteristic
     84    * this operation was performed on.
     85    */
     86   void onCharacteristicWrite(in int status,
     87                              in GattIdentifier characteristic_id);
     88 
     89   /**
     90    * Called as a result of IBluetoothGattClient.endReliableWrite.
     91    * |device_address| refers to the remote device that the endReliableWrite
     92    * method was called on. |status| will contain BLE_STATUS_SUCCESS (0) on
     93    * success and an ATT error code in case of an error.
     94    */
     95   void onExecuteWrite(in String device_address, in int status);
     96 
     97   /**
     98    * Called as a result of IBluetoothGattClient.readDescriptor. |status|
     99    * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error
    100    * code in case of an error. |descriptor_id| refers to the descriptor this
    101    * operation was performed on. On success, |value| will contain the
    102    * descriptor value that was read from the remote device. This argument
    103    * can be ignored in case of failure.
    104    */
    105   void onDescriptorRead(in int status, in GattIdentifier descriptor_id,
    106                         in byte[] value);
    107 
    108   /**
    109    * Called as a result of IBluetoothGattClient.writeDescriptor. |status|
    110    * will contain BLE_STATUS_SUCCESS (0) on success and an ATT protocol error
    111    * code in case of an error. |descriptor_id| refers to the descriptor this
    112    * operation was performed on.
    113    */
    114   void onDescriptorWrite(in int status, in GattIdentifier descriptor_id);
    115 
    116   /**
    117    * Called when there is an incoming ATT Handle-Value notification or
    118    * indication for the characteristic with identifier |characteristic_id|.
    119    */
    120   void onNotify(in GattIdentifier characteristic_id, in byte[] value);
    121 }
    122