Home | History | Annotate | Download | only in bluetooth
      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 
     17 package android.bluetooth;
     18 
     19 import android.bluetooth.BluetoothDevice;
     20 import android.bluetooth.le.AdvertiseSettings;
     21 import android.bluetooth.le.AdvertiseData;
     22 import android.bluetooth.le.ScanFilter;
     23 import android.bluetooth.le.ScanSettings;
     24 import android.bluetooth.le.ResultStorageDescriptor;
     25 import android.os.ParcelUuid;
     26 import android.os.WorkSource;
     27 
     28 import android.bluetooth.IBluetoothGattCallback;
     29 import android.bluetooth.IBluetoothGattServerCallback;
     30 
     31 /**
     32  * API for interacting with BLE / GATT
     33  * @hide
     34  */
     35 interface IBluetoothGatt {
     36     List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states);
     37 
     38     void startScan(in int appIf, in boolean isServer, in ScanSettings settings,
     39                    in List<ScanFilter> filters, in WorkSource workSource, in List scanStorages,
     40                    in String callingPackage);
     41     void stopScan(in int appIf, in boolean isServer);
     42     void flushPendingBatchResults(in int appIf, in boolean isServer);
     43     void startMultiAdvertising(in int appIf,
     44                                in AdvertiseData advertiseData,
     45                                in AdvertiseData scanResponse,
     46                                in AdvertiseSettings settings);
     47     void stopMultiAdvertising(in int appIf);
     48     void registerClient(in ParcelUuid appId, in IBluetoothGattCallback callback);
     49     void unregisterClient(in int clientIf);
     50     void clientConnect(in int clientIf, in String address, in boolean isDirect, in int transport);
     51     void clientDisconnect(in int clientIf, in String address);
     52     void refreshDevice(in int clientIf, in String address);
     53     void discoverServices(in int clientIf, in String address);
     54     void readCharacteristic(in int clientIf, in String address, in int handle, in int authReq);
     55     void writeCharacteristic(in int clientIf, in String address, in int handle,
     56                             in int writeType, in int authReq, in byte[] value);
     57     void readDescriptor(in int clientIf, in String address, in int handle, in int authReq);
     58     void writeDescriptor(in int clientIf, in String address, in int handle,
     59                             in int writeType, in int authReq, in byte[] value);
     60     void registerForNotification(in int clientIf, in String address, in int handle, in boolean enable);
     61     void beginReliableWrite(in int clientIf, in String address);
     62     void endReliableWrite(in int clientIf, in String address, in boolean execute);
     63     void readRemoteRssi(in int clientIf, in String address);
     64     void configureMTU(in int clientIf, in String address, in int mtu);
     65     void connectionParameterUpdate(in int clientIf, in String address, in int connectionPriority);
     66 
     67     void registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback);
     68     void unregisterServer(in int serverIf);
     69     void serverConnect(in int servertIf, in String address, in boolean isDirect, in int transport);
     70     void serverDisconnect(in int serverIf, in String address);
     71     void beginServiceDeclaration(in int serverIf, in int srvcType,
     72                             in int srvcInstanceId, in int minHandles,
     73                             in ParcelUuid srvcId, boolean advertisePreferred);
     74     void addIncludedService(in int serverIf, in int srvcType,
     75                             in int srvcInstanceId, in ParcelUuid srvcId);
     76     void addCharacteristic(in int serverIf, in ParcelUuid charId,
     77                             in int properties, in int permissions);
     78     void addDescriptor(in int serverIf, in ParcelUuid descId,
     79                             in int permissions);
     80     void endServiceDeclaration(in int serverIf);
     81     void removeService(in int serverIf, in int srvcType,
     82                             in int srvcInstanceId, in ParcelUuid srvcId);
     83     void clearServices(in int serverIf);
     84     void sendResponse(in int serverIf, in String address, in int requestId,
     85                             in int status, in int offset, in byte[] value);
     86     void sendNotification(in int serverIf, in String address, in int srvcType,
     87                             in int srvcInstanceId, in ParcelUuid srvcId,
     88                             in int charInstanceId, in ParcelUuid charId,
     89                             in boolean confirm, in byte[] value);
     90     void disconnectAll();
     91     void unregAll();
     92     int numHwTrackFiltersAvailable();
     93 }
     94