| /* |
| * Copyright 2015, The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /** |
| * Binder IPC API for interacting with Bluetooth Low-Energy features. |
| */ |
| interface IBluetoothLowEnergy { |
| /** |
| * Registers a client application that can manage its own Low Energy |
| * instance. A special client interface ID will be returned in a callback to |
| * the application that can be used to perform Low Energy operations. Returns |
| * false in case of an error. |
| */ |
| boolean registerClient(in IBluetoothLowEnergyCallback callback); |
| |
| /** |
| * Unregisters a previously registered client with "client interface ID" |
| * |client_if|. |
| */ |
| void unregisterClient(in int client_if); |
| |
| /** |
| * Unregisters all previously registered clients. |
| */ |
| void unregisterAll(); |
| |
| /* Initiates a BLE connection do device with address |address|. If |
| * |is_direct| is set, use direct connect procedure. Return true on success, |
| * false otherwise. |
| */ |
| boolean Connect(in int client_id, in const char* address, |
| in boolean is_direct); |
| |
| /* Disconnect from previously connected BLE device with address |address|. |
| * Returns true on success, false otherwise. |
| */ |
| boolean Disconnect(in int client_id, in const char* address); |
| |
| /** |
| * Sends request to set MTU to |mtu| for the device with address |address|. |
| * OnMtuChanged callback will be triggered as a result of this call. Returns |
| * true when the command was sent, false otherwise. |
| */ |
| boolean setMtu(in int client_id, in char* address, int mtu); |
| |
| /** |
| * Initiates a BLE device scan for the scan client with ID |client_id|, using |
| * the parameters defined in |settings|. Scan results that are reported to the |
| * application with the associated IBluetoothLowEnergyCallback event will be |
| * filtered using a combination of hardware and software filtering based on |
| * |filters|. Return true on success, false otherwise. |
| */ |
| boolean startScan(in int client_id, in ScanSettings settings, |
| in ScanFilter[] filters); |
| |
| /** |
| * Stops a previously initiated scan session for the client with ID |
| * |client_id|. Return true on success, false otherwise. |
| */ |
| boolean stopScan(in int client_id); |
| |
| /** |
| * Starts a multi-advertising instance using |advertising_data| and |
| * |scan_response_data|, both of which can be empty. Each of these parameters |
| * must contain the raw advertising packet. Returns false if there were any |
| * synchronous failures, e.g. if the advertising or scan response data are |
| * incorrectly formatted. Otherwise, the result of the operation will be |
| * asynchronously reported in |
| * IBluetoothLowEnergyCallback.onMultiAdvertiseCallback. See the headers in |
| * common/bluetooth/binder for documentation on the AdvertiseData and |
| * AdvertiseSettings data types. |
| */ |
| boolean startMultiAdvertising(in int client_if, |
| in AdvertiseData advertise_data, |
| in AdvertiseData scan_response_data, |
| in AdvertiseSettings settings); |
| |
| /** |
| * Stops the previously started multi-advertising instance for the given |
| * client. Returns false in case of an error, e.g. this client has not started |
| * an instance. |
| */ |
| boolean stopMultiAdvertising(in int client_if); |
| } |