IBluetoothGatt.aidl revision af74e66e29a518157cb78fcef4b4fc532b7f60b0
19908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta/*
29908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Copyright (C) 2013 The Android Open Source Project
39908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
49908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Licensed under the Apache License, Version 2.0 (the "License");
59908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * you may not use this file except in compliance with the License.
69908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * You may obtain a copy of the License at
79908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
89908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *      http://www.apache.org/licenses/LICENSE-2.0
99908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta *
109908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * Unless required by applicable law or agreed to in writing, software
119908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * distributed under the License is distributed on an "AS IS" BASIS,
129908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * See the License for the specific language governing permissions and
149908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * limitations under the License.
159908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta */
169908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
179908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battapackage android.bluetooth;
189908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
199908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport android.bluetooth.BluetoothDevice;
206d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangimport android.bluetooth.le.AdvertiseSettings;
21af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wangimport android.bluetooth.le.AdvertiseData;
226d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangimport android.bluetooth.le.ScanFilter;
236d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangimport android.bluetooth.le.ScanSettings;
249908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport android.os.ParcelUuid;
259908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
269908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport android.bluetooth.IBluetoothGattCallback;
279908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battaimport android.bluetooth.IBluetoothGattServerCallback;
289908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
299908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta/**
309908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * API for interacting with BLE / GATT
319908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta * @hide
329908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta */
339908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Battainterface IBluetoothGatt {
349908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states);
359908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
369908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void startScan(in int appIf, in boolean isServer);
379908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void startScanWithUuids(in int appIf, in boolean isServer, in ParcelUuid[] ids);
38adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang    void startScanWithFilters(in int appIf, in boolean isServer,
396d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang                              in ScanSettings settings, in List<ScanFilter> filters);
409908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void stopScan(in int appIf, in boolean isServer);
419fb1791e1a6859bfb14006a6d101cdecc88f3f95Wei Wang    void flushPendingBatchResults(in int appIf, in boolean isServer);
42ab39cb7f6ac520d150e7f56c89072d229bd26793Wei Wang    void startMultiAdvertising(in int appIf,
43af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang                               in AdvertiseData advertiseData,
44af74e66e29a518157cb78fcef4b4fc532b7f60b0Wei Wang                               in AdvertiseData scanResponse,
456d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang                               in AdvertiseSettings settings);
46adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang    void stopMultiAdvertising(in int appIf);
479908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void registerClient(in ParcelUuid appId, in IBluetoothGattCallback callback);
489908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void unregisterClient(in int clientIf);
49b88fa824ab6337684de9aa8437c4952df4f1a75eGanesh Ganapathi Batta    void clientConnect(in int clientIf, in String address, in boolean isDirect, in int transport);
509908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void clientDisconnect(in int clientIf, in String address);
5186b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    void startAdvertising(in int appIf);
5286b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    void stopAdvertising();
5386b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    boolean setAdvServiceData(in byte[] serviceData);
5486b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    byte[] getAdvServiceData();
5586b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    boolean setAdvManufacturerCodeAndData(int manufactureCode, in byte[] manufacturerData);
5686b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    byte[] getAdvManufacturerData();
5786b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    List<ParcelUuid> getAdvServiceUuids();
5886b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    void removeAdvManufacturerCodeAndData(int manufacturerCode);
5986b3fa6090e78ff795a9ceaed531f8f549114debWei Wang    boolean isAdvertising();
609908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void refreshDevice(in int clientIf, in String address);
619908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void discoverServices(in int clientIf, in String address);
629908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void readCharacteristic(in int clientIf, in String address, in int srvcType,
639908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId,
649908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int charInstanceId, in ParcelUuid charId,
659908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int authReq);
669908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void writeCharacteristic(in int clientIf, in String address, in int srvcType,
679908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId,
689908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int charInstanceId, in ParcelUuid charId,
699908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int writeType, in int authReq, in byte[] value);
709908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void readDescriptor(in int clientIf, in String address, in int srvcType,
719908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId,
729908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int charInstanceId, in ParcelUuid charId,
7325b9cf953bd3e97f726f8c27d7a752b27c9a2373Andre Eisenbach                            in int descrInstanceId, in ParcelUuid descrUuid,
7425b9cf953bd3e97f726f8c27d7a752b27c9a2373Andre Eisenbach                            in int authReq);
759908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void writeDescriptor(in int clientIf, in String address, in int srvcType,
769908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId,
779908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int charInstanceId, in ParcelUuid charId,
7825b9cf953bd3e97f726f8c27d7a752b27c9a2373Andre Eisenbach                            in int descrInstanceId, in ParcelUuid descrId,
7925b9cf953bd3e97f726f8c27d7a752b27c9a2373Andre Eisenbach                            in int writeType, in int authReq, in byte[] value);
809908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void registerForNotification(in int clientIf, in String address, in int srvcType,
819908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId,
829908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int charInstanceId, in ParcelUuid charId,
839908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in boolean enable);
849908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void beginReliableWrite(in int clientIf, in String address);
859908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void endReliableWrite(in int clientIf, in String address, in boolean execute);
869908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void readRemoteRssi(in int clientIf, in String address);
87580b0a13028ed2187964735a5515d87900d241ceAndre Eisenbach    void configureMTU(in int clientIf, in String address, in int mtu);
889908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta
899908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback);
909908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void unregisterServer(in int serverIf);
91b88fa824ab6337684de9aa8437c4952df4f1a75eGanesh Ganapathi Batta    void serverConnect(in int servertIf, in String address, in boolean isDirect, in int transport);
929908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void serverDisconnect(in int serverIf, in String address);
939908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void beginServiceDeclaration(in int serverIf, in int srvcType,
949908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in int minHandles,
9586b3fa6090e78ff795a9ceaed531f8f549114debWei Wang                            in ParcelUuid srvcId, boolean advertisePreferred);
969908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void addIncludedService(in int serverIf, in int srvcType,
979908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId);
989908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void addCharacteristic(in int serverIf, in ParcelUuid charId,
999908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int properties, in int permissions);
1009908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void addDescriptor(in int serverIf, in ParcelUuid descId,
1019908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int permissions);
1029908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void endServiceDeclaration(in int serverIf);
1039908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void removeService(in int serverIf, in int srvcType,
1049908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId);
1059908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void clearServices(in int serverIf);
1069908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void sendResponse(in int serverIf, in String address, in int requestId,
1079908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int status, in int offset, in byte[] value);
1089908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta    void sendNotification(in int serverIf, in String address, in int srvcType,
1099908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int srvcInstanceId, in ParcelUuid srvcId,
1109908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in int charInstanceId, in ParcelUuid charId,
1119908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta                            in boolean confirm, in byte[] value);
1129908112fd085d8b0d91e0562d32eebd1884f09a5Ganesh Ganapathi Batta}
113