blob: ac7a6cbefdff28e1b3f0c566a8136c55f5f82bdc [file] [log] [blame]
Arman Ugurayf6fc0c42015-10-06 18:10:15 -07001/*
Jakub Pawlowski5b790fe2017-09-18 09:00:20 -07002 * Copyright 2015, The Android Open Source Project
Arman Ugurayf6fc0c42015-10-06 18:10:15 -07003 *
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 */
20interface 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 Uguray6dc92022015-12-02 17:39:14 -080036 * Unregisters all previously registered clients.
Arman Ugurayf6fc0c42015-10-06 18:10:15 -070037 */
38 void unregisterAll();
39
Jakub Pawlowski455dc8f2016-01-19 17:00:16 -080040 /* 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 Pawlowskia6551072016-01-26 12:58:47 -080048 * Returns true on success, false otherwise.
Jakub Pawlowski455dc8f2016-01-19 17:00:16 -080049 */
50 boolean Disconnect(in int client_id, in const char* address);
51
Arman Ugurayf6fc0c42015-10-06 18:10:15 -070052 /**
Jakub Pawlowskia6551072016-01-26 12:58:47 -080053 * 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 Uguray6dc92022015-12-02 17:39:14 -080060 * 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 Ugurayff1469f2015-10-13 09:04:44 -070076 * 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 Ugurayf6fc0c42015-10-06 18:10:15 -070079 * 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}