1 /* 2 * Copyright 2021 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.bluetooth.IBluetoothVolumeControlCallback; 22 import android.content.AttributionSource; 23 24 /** 25 * APIs for Bluetooth Volume Control service 26 * 27 * @hide 28 */ 29 interface IBluetoothVolumeControl { 30 31 const int VOLUME_CONTROL_UNKNOWN_VOLUME = -1; 32 33 /* Public API */ 34 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") connect(in BluetoothDevice device, in AttributionSource attributionSource)35 boolean connect(in BluetoothDevice device, in AttributionSource attributionSource); 36 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") disconnect(in BluetoothDevice device, in AttributionSource attributionSource)37 boolean disconnect(in BluetoothDevice device, in AttributionSource attributionSource); 38 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") getConnectedDevices(in AttributionSource attributionSource)39 List<BluetoothDevice> getConnectedDevices(in AttributionSource attributionSource); 40 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource)41 List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource); 42 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource)43 int getConnectionState(in BluetoothDevice device, 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(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource)47 int getConnectionPolicy(in BluetoothDevice device, in AttributionSource attributionSource); 48 49 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") isVolumeOffsetAvailable(in BluetoothDevice device, in AttributionSource attributionSource)50 boolean isVolumeOffsetAvailable(in BluetoothDevice device, in AttributionSource attributionSource); 51 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") getNumberOfVolumeOffsetInstances(in BluetoothDevice device, in AttributionSource attributionSource)52 int getNumberOfVolumeOffsetInstances(in BluetoothDevice device, in AttributionSource attributionSource); 53 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") setVolumeOffset(in BluetoothDevice device, int instanceId, int volumeOffset, in AttributionSource attributionSource)54 void setVolumeOffset(in BluetoothDevice device, int instanceId, int volumeOffset, in AttributionSource attributionSource); 55 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") setGroupVolume(int group_id, int volume, in AttributionSource attributionSource)56 void setGroupVolume(int group_id, int volume, in AttributionSource attributionSource); 57 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") getGroupVolume(int group_id, in AttributionSource attributionSource)58 int getGroupVolume(int group_id, in AttributionSource attributionSource); 59 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") setGroupActive(int group_id, boolean active, in AttributionSource attributionSource)60 void setGroupActive(int group_id, boolean active, in AttributionSource attributionSource); 61 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") setDeviceVolume(in BluetoothDevice device, int volume, boolean isGroupOp, in AttributionSource attributionSource)62 void setDeviceVolume(in BluetoothDevice device, int volume, boolean isGroupOp, in AttributionSource attributionSource); 63 64 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") mute(in BluetoothDevice device, in AttributionSource attributionSource)65 void mute(in BluetoothDevice device, in AttributionSource attributionSource); 66 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") muteGroup(int group_id, in AttributionSource attributionSource)67 void muteGroup(int group_id, in AttributionSource attributionSource); 68 69 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") unmute(in BluetoothDevice device, in AttributionSource attributionSource)70 void unmute(in BluetoothDevice device, in AttributionSource attributionSource); 71 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") unmuteGroup(int group_id, in AttributionSource attributionSource)72 void unmuteGroup(int group_id, in AttributionSource attributionSource); 73 74 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") registerCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource)75 void registerCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource); 76 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") unregisterCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource)77 void unregisterCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource); 78 @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})") notifyNewRegisteredCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource)79 void notifyNewRegisteredCallback(in IBluetoothVolumeControlCallback callback, in AttributionSource attributionSource); 80 } 81