Arman Uguray | f6fc0c4 | 2015-10-06 18:10:15 -0700 | [diff] [blame] | 1 | /* |
Jakub Pawlowski | 5b790fe | 2017-09-18 09:00:20 -0700 | [diff] [blame] | 2 | * Copyright 2015, The Android Open Source Project |
Arman Uguray | f6fc0c4 | 2015-10-06 18:10:15 -0700 | [diff] [blame] | 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 API for interacting with Bluetooth Low-Energy features. |
| 19 | */ |
| 20 | interface IBluetoothLowEnergy { |
| 21 | /** |
| 22 | * Registers a client application that can manage its own Low Energy |
| 23 | * instance. A special client interface ID will be returned in a callback to |
| 24 | * the application that can be used to perform Low Energy operations. Returns |
| 25 | * false in case of an error. |
| 26 | */ |
| 27 | boolean registerClient(in IBluetoothLowEnergyCallback callback); |
| 28 | |
| 29 | /** |
| 30 | * Unregisters a previously registered client with "client interface ID" |
| 31 | * |client_if|. |
| 32 | */ |
| 33 | void unregisterClient(in int client_if); |
| 34 | |
| 35 | /** |
Arman Uguray | 6dc9202 | 2015-12-02 17:39:14 -0800 | [diff] [blame] | 36 | * Unregisters all previously registered clients. |
Arman Uguray | f6fc0c4 | 2015-10-06 18:10:15 -0700 | [diff] [blame] | 37 | */ |
| 38 | void unregisterAll(); |
| 39 | |
Jakub Pawlowski | 455dc8f | 2016-01-19 17:00:16 -0800 | [diff] [blame] | 40 | /* Initiates a BLE connection do device with address |address|. If |
| 41 | * |is_direct| is set, use direct connect procedure. Return true on success, |
| 42 | * false otherwise. |
| 43 | */ |
| 44 | boolean Connect(in int client_id, in const char* address, |
| 45 | in boolean is_direct); |
| 46 | |
| 47 | /* Disconnect from previously connected BLE device with address |address|. |
Jakub Pawlowski | a655107 | 2016-01-26 12:58:47 -0800 | [diff] [blame] | 48 | * Returns true on success, false otherwise. |
Jakub Pawlowski | 455dc8f | 2016-01-19 17:00:16 -0800 | [diff] [blame] | 49 | */ |
| 50 | boolean Disconnect(in int client_id, in const char* address); |
| 51 | |
Arman Uguray | f6fc0c4 | 2015-10-06 18:10:15 -0700 | [diff] [blame] | 52 | /** |
Jakub Pawlowski | a655107 | 2016-01-26 12:58:47 -0800 | [diff] [blame] | 53 | * Sends request to set MTU to |mtu| for the device with address |address|. |
| 54 | * OnMtuChanged callback will be triggered as a result of this call. Returns |
| 55 | * true when the command was sent, false otherwise. |
| 56 | */ |
| 57 | boolean setMtu(in int client_id, in char* address, int mtu); |
| 58 | |
| 59 | /** |
Arman Uguray | 6dc9202 | 2015-12-02 17:39:14 -0800 | [diff] [blame] | 60 | * Initiates a BLE device scan for the scan client with ID |client_id|, using |
| 61 | * the parameters defined in |settings|. Scan results that are reported to the |
| 62 | * application with the associated IBluetoothLowEnergyCallback event will be |
| 63 | * filtered using a combination of hardware and software filtering based on |
| 64 | * |filters|. Return true on success, false otherwise. |
| 65 | */ |
| 66 | boolean startScan(in int client_id, in ScanSettings settings, |
| 67 | in ScanFilter[] filters); |
| 68 | |
| 69 | /** |
| 70 | * Stops a previously initiated scan session for the client with ID |
| 71 | * |client_id|. Return true on success, false otherwise. |
| 72 | */ |
| 73 | boolean stopScan(in int client_id); |
| 74 | |
| 75 | /** |
Arman Uguray | ff1469f | 2015-10-13 09:04:44 -0700 | [diff] [blame] | 76 | * Starts a multi-advertising instance using |advertising_data| and |
| 77 | * |scan_response_data|, both of which can be empty. Each of these parameters |
| 78 | * must contain the raw advertising packet. Returns false if there were any |
Arman Uguray | f6fc0c4 | 2015-10-06 18:10:15 -0700 | [diff] [blame] | 79 | * synchronous failures, e.g. if the advertising or scan response data are |
| 80 | * incorrectly formatted. Otherwise, the result of the operation will be |
| 81 | * asynchronously reported in |
| 82 | * IBluetoothLowEnergyCallback.onMultiAdvertiseCallback. See the headers in |
| 83 | * common/bluetooth/binder for documentation on the AdvertiseData and |
| 84 | * AdvertiseSettings data types. |
| 85 | */ |
| 86 | boolean startMultiAdvertising(in int client_if, |
| 87 | in AdvertiseData advertise_data, |
| 88 | in AdvertiseData scan_response_data, |
| 89 | in AdvertiseSettings settings); |
| 90 | |
| 91 | /** |
| 92 | * Stops the previously started multi-advertising instance for the given |
| 93 | * client. Returns false in case of an error, e.g. this client has not started |
| 94 | * an instance. |
| 95 | */ |
| 96 | boolean stopMultiAdvertising(in int client_if); |
| 97 | } |