1 /*
2  * Copyright 2008 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.BluetoothCodecConfig;
20 import android.bluetooth.BluetoothCodecStatus;
21 import android.bluetooth.BluetoothDevice;
22 import android.bluetooth.BufferConstraints;
23 import android.content.AttributionSource;
24 
25 /**
26  * APIs for Bluetooth A2DP service
27  *
28  * @hide
29  */
30 interface IBluetoothA2dp {
31     // Public API
32     @UnsupportedAppUsage
33     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
connect(in BluetoothDevice device)34     boolean connect(in BluetoothDevice device);
35     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
connectWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource)36     boolean connectWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource);
37     @UnsupportedAppUsage
38     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disconnect(in BluetoothDevice device)39     boolean disconnect(in BluetoothDevice device);
40     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disconnectWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource)41     boolean disconnectWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource);
42     @UnsupportedAppUsage
43     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectedDevices()44     List<BluetoothDevice> getConnectedDevices();
45     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectedDevicesWithAttribution(in AttributionSource attributionSource)46     List<BluetoothDevice> getConnectedDevicesWithAttribution(in AttributionSource attributionSource);
47     @UnsupportedAppUsage
48     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getDevicesMatchingConnectionStates(in int[] states)49     List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states);
50     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getDevicesMatchingConnectionStatesWithAttribution(in int[] states, in AttributionSource attributionSource)51     List<BluetoothDevice> getDevicesMatchingConnectionStatesWithAttribution(in int[] states, in AttributionSource attributionSource);
52     @UnsupportedAppUsage
53     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionState(in BluetoothDevice device)54     int getConnectionState(in BluetoothDevice device);
55     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionStateWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource)56     int getConnectionStateWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource);
57     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setActiveDevice(in BluetoothDevice device, in AttributionSource attributionSource)58     boolean setActiveDevice(in BluetoothDevice device, in AttributionSource attributionSource);
59     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getActiveDevice(in AttributionSource attributionSource)60     BluetoothDevice getActiveDevice(in AttributionSource attributionSource);
61     @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)62     boolean setConnectionPolicy(in BluetoothDevice device, int connectionPolicy, in AttributionSource attributionSource);
63     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource)64     int getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource);
65     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isAvrcpAbsoluteVolumeSupported()66     boolean isAvrcpAbsoluteVolumeSupported();
67     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setAvrcpAbsoluteVolume(int volume, in AttributionSource attributionSource)68     oneway void setAvrcpAbsoluteVolume(int volume, in AttributionSource attributionSource);
69     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
isA2dpPlaying(in BluetoothDevice device, in AttributionSource attributionSource)70     boolean isA2dpPlaying(in BluetoothDevice device, in AttributionSource attributionSource);
71     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getCodecStatus(in BluetoothDevice device, in AttributionSource attributionSource)72     BluetoothCodecStatus getCodecStatus(in BluetoothDevice device, in AttributionSource attributionSource);
73     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setCodecConfigPreference(in BluetoothDevice device, in BluetoothCodecConfig codecConfig, in AttributionSource attributionSource)74     oneway void setCodecConfigPreference(in BluetoothDevice device, in BluetoothCodecConfig codecConfig, in AttributionSource attributionSource);
75     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
enableOptionalCodecs(in BluetoothDevice device, in AttributionSource attributionSource)76     oneway void enableOptionalCodecs(in BluetoothDevice device, in AttributionSource attributionSource);
77     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disableOptionalCodecs(in BluetoothDevice device, in AttributionSource attributionSource)78     oneway void disableOptionalCodecs(in BluetoothDevice device, in AttributionSource attributionSource);
79     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
supportsOptionalCodecs(in BluetoothDevice device, in AttributionSource attributionSource)80     int supportsOptionalCodecs(in BluetoothDevice device, in AttributionSource attributionSource);
81     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getOptionalCodecsEnabled(in BluetoothDevice device, in AttributionSource attributionSource)82     int getOptionalCodecsEnabled(in BluetoothDevice device, in AttributionSource attributionSource);
83     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setOptionalCodecsEnabled(in BluetoothDevice device, int value, in AttributionSource attributionSource)84     oneway void setOptionalCodecsEnabled(in BluetoothDevice device, int value, in AttributionSource attributionSource);
85     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getDynamicBufferSupport(in AttributionSource attributionSource)86     int getDynamicBufferSupport(in AttributionSource attributionSource);
87     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getBufferConstraints(in AttributionSource attributionSource)88     BufferConstraints getBufferConstraints(in AttributionSource attributionSource);
89     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setBufferLengthMillis(int codec, int size, in AttributionSource attributionSource)90     boolean setBufferLengthMillis(int codec, int size, in AttributionSource attributionSource);
91     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getPriority(in BluetoothDevice device, in AttributionSource attributionSource)92     int getPriority(in BluetoothDevice device, in AttributionSource attributionSource);
93 }
94