IBluetoothGatt.aidl revision ab39cb7f6ac520d150e7f56c89072d229bd26793
1/*
2 * Copyright (C) 2013 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
17package android.bluetooth;
18
19import android.bluetooth.BluetoothDevice;
20import android.bluetooth.BluetoothLeAdvertiseScanData;
21import android.bluetooth.BluetoothLeAdvertiser;
22import android.bluetooth.BluetoothLeScanFilter;
23import android.bluetooth.BluetoothLeScanner;
24import android.os.ParcelUuid;
25
26import android.bluetooth.IBluetoothGattCallback;
27import android.bluetooth.IBluetoothGattServerCallback;
28
29/**
30 * API for interacting with BLE / GATT
31 * @hide
32 */
33interface IBluetoothGatt {
34    List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states);
35
36    void startScan(in int appIf, in boolean isServer);
37    void startScanWithUuids(in int appIf, in boolean isServer, in ParcelUuid[] ids);
38    void startScanWithUuidsScanParam(in int appIf, in boolean isServer,
39                    in ParcelUuid[] ids, int scanWindow, int scanInterval);
40    void startScanWithFilters(in int appIf, in boolean isServer,
41                              in BluetoothLeScanner.Settings settings,
42                              in List<BluetoothLeScanFilter> filters);
43    void stopScan(in int appIf, in boolean isServer);
44    void startMultiAdvertising(in int appIf,
45                               in BluetoothLeAdvertiseScanData.AdvertisementData advertiseData,
46                               in BluetoothLeAdvertiseScanData.AdvertisementData scanResponse,
47                               in BluetoothLeAdvertiser.Settings settings);
48    void stopMultiAdvertising(in int appIf);
49    void registerClient(in ParcelUuid appId, in IBluetoothGattCallback callback);
50    void unregisterClient(in int clientIf);
51    void clientConnect(in int clientIf, in String address, in boolean isDirect, in int transport);
52    void clientDisconnect(in int clientIf, in String address);
53    void startAdvertising(in int appIf);
54    void stopAdvertising();
55    boolean setAdvServiceData(in byte[] serviceData);
56    byte[] getAdvServiceData();
57    boolean setAdvManufacturerCodeAndData(int manufactureCode, in byte[] manufacturerData);
58    byte[] getAdvManufacturerData();
59    List<ParcelUuid> getAdvServiceUuids();
60    void removeAdvManufacturerCodeAndData(int manufacturerCode);
61    boolean isAdvertising();
62    void refreshDevice(in int clientIf, in String address);
63    void discoverServices(in int clientIf, in String address);
64    void readCharacteristic(in int clientIf, in String address, in int srvcType,
65                            in int srvcInstanceId, in ParcelUuid srvcId,
66                            in int charInstanceId, in ParcelUuid charId,
67                            in int authReq);
68    void writeCharacteristic(in int clientIf, in String address, in int srvcType,
69                            in int srvcInstanceId, in ParcelUuid srvcId,
70                            in int charInstanceId, in ParcelUuid charId,
71                            in int writeType, in int authReq, in byte[] value);
72    void readDescriptor(in int clientIf, in String address, in int srvcType,
73                            in int srvcInstanceId, in ParcelUuid srvcId,
74                            in int charInstanceId, in ParcelUuid charId,
75                            in int descrInstanceId, in ParcelUuid descrUuid,
76                            in int authReq);
77    void writeDescriptor(in int clientIf, in String address, in int srvcType,
78                            in int srvcInstanceId, in ParcelUuid srvcId,
79                            in int charInstanceId, in ParcelUuid charId,
80                            in int descrInstanceId, in ParcelUuid descrId,
81                            in int writeType, in int authReq, in byte[] value);
82    void registerForNotification(in int clientIf, in String address, in int srvcType,
83                            in int srvcInstanceId, in ParcelUuid srvcId,
84                            in int charInstanceId, in ParcelUuid charId,
85                            in boolean enable);
86    void beginReliableWrite(in int clientIf, in String address);
87    void endReliableWrite(in int clientIf, in String address, in boolean execute);
88    void readRemoteRssi(in int clientIf, in String address);
89    void configureMTU(in int clientIf, in String address, in int mtu);
90
91    void registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback);
92    void unregisterServer(in int serverIf);
93    void serverConnect(in int servertIf, in String address, in boolean isDirect, in int transport);
94    void serverDisconnect(in int serverIf, in String address);
95    void beginServiceDeclaration(in int serverIf, in int srvcType,
96                            in int srvcInstanceId, in int minHandles,
97                            in ParcelUuid srvcId, boolean advertisePreferred);
98    void addIncludedService(in int serverIf, in int srvcType,
99                            in int srvcInstanceId, in ParcelUuid srvcId);
100    void addCharacteristic(in int serverIf, in ParcelUuid charId,
101                            in int properties, in int permissions);
102    void addDescriptor(in int serverIf, in ParcelUuid descId,
103                            in int permissions);
104    void endServiceDeclaration(in int serverIf);
105    void removeService(in int serverIf, in int srvcType,
106                            in int srvcInstanceId, in ParcelUuid srvcId);
107    void clearServices(in int serverIf);
108    void sendResponse(in int serverIf, in String address, in int requestId,
109                            in int status, in int offset, in byte[] value);
110    void sendNotification(in int serverIf, in String address, in int srvcType,
111                            in int srvcInstanceId, in ParcelUuid srvcId,
112                            in int charInstanceId, in ParcelUuid charId,
113                            in boolean confirm, in byte[] value);
114}
115