1 /*
2  * Copyright 2020 HIMSA II K/S - www.himsa.com.
3  * Represented by EHIMA - www.ehima.com
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 package android.bluetooth;
19 
20 import android.bluetooth.BluetoothDevice;
21 import android.content.AttributionSource;
22 
23 /**
24  * APIs for Bluetooth LE Audio service
25  *
26  * @hide
27  */
28 interface IBluetoothLeAudio {
29     // Public API
30     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
connect(in BluetoothDevice device, in AttributionSource attributionSource)31     boolean connect(in BluetoothDevice device, in AttributionSource attributionSource);
32     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disconnect(in BluetoothDevice device, in AttributionSource attributionSource)33     boolean disconnect(in BluetoothDevice device, in AttributionSource attributionSource);
34     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectedDevices(in AttributionSource attributionSource)35     List<BluetoothDevice> getConnectedDevices(in AttributionSource attributionSource);
36     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource)37     List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource);
38     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource)39     int getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource);
40     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setActiveDevice(in BluetoothDevice device, in AttributionSource attributionSource)41     boolean setActiveDevice(in BluetoothDevice device, in AttributionSource attributionSource);
42     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getActiveDevices(in AttributionSource attributionSource)43     List<BluetoothDevice> getActiveDevices(in AttributionSource attributionSource);
44     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setConnectionPolicy(in BluetoothDevice device, int connectionPolicy, in AttributionSource attributionSource)45     boolean setConnectionPolicy(in BluetoothDevice device, int connectionPolicy, in AttributionSource attributionSource);
46     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource)47     int getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource);
48 
49     const int LE_AUDIO_GROUP_ID_INVALID = -1;
50 
51     /**
52      * Get device group id. Devices with same group id belong to same group (i.e left and right
53      * earbud)
54      */
55     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getGroupId(in BluetoothDevice device, in AttributionSource attributionSource)56     int getGroupId(in BluetoothDevice device, in AttributionSource attributionSource);
57 }
58