1 /*
2  * Copyright 2013 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.app.PendingIntent;
20 import android.bluetooth.BluetoothDevice;
21 import android.bluetooth.BluetoothGattService;
22 import android.bluetooth.le.AdvertiseSettings;
23 import android.bluetooth.le.AdvertiseData;
24 import android.bluetooth.le.AdvertisingSetParameters;
25 import android.bluetooth.le.DistanceMeasurementMethod;
26 import android.bluetooth.le.DistanceMeasurementParams;
27 import android.bluetooth.le.IDistanceMeasurementCallback;
28 import android.bluetooth.le.PeriodicAdvertisingParameters;
29 import android.bluetooth.le.ScanFilter;
30 import android.bluetooth.le.ScanResult;
31 import android.bluetooth.le.ScanSettings;
32 import android.bluetooth.le.ResultStorageDescriptor;
33 import android.content.AttributionSource;
34 import android.os.ParcelUuid;
35 import android.os.WorkSource;
36 
37 import android.bluetooth.IBluetoothGattCallback;
38 import android.bluetooth.IBluetoothGattServerCallback;
39 import android.bluetooth.le.IAdvertisingSetCallback;
40 import android.bluetooth.le.IPeriodicAdvertisingCallback;
41 import android.bluetooth.le.IScannerCallback;
42 
43 /**
44  * API for interacting with BLE / GATT
45  * @hide
46  */
47 interface IBluetoothGatt {
48     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource)49     List<BluetoothDevice> getDevicesMatchingConnectionStates(in int[] states, in AttributionSource attributionSource);
50 
51     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
registerScanner(in IScannerCallback callback, in WorkSource workSource, in AttributionSource attributionSource)52     void registerScanner(in IScannerCallback callback, in WorkSource workSource, in AttributionSource attributionSource);
53     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
unregisterScanner(in int scannerId, in AttributionSource attributionSource)54     void unregisterScanner(in int scannerId, in AttributionSource attributionSource);
55     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
startScan(in int scannerId, in ScanSettings settings, in List<ScanFilter> filters, in AttributionSource attributionSource)56     void startScan(in int scannerId, in ScanSettings settings, in List<ScanFilter> filters,
57                    in AttributionSource attributionSource);
58     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
startScanForIntent(in PendingIntent intent, in ScanSettings settings, in List<ScanFilter> filters, in AttributionSource attributionSource)59     void startScanForIntent(in PendingIntent intent, in ScanSettings settings, in List<ScanFilter> filters,
60                             in AttributionSource attributionSource);
61     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
stopScanForIntent(in PendingIntent intent, in AttributionSource attributionSource)62     void stopScanForIntent(in PendingIntent intent, in AttributionSource attributionSource);
63     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
stopScan(in int scannerId, in AttributionSource attributionSource)64     void stopScan(in int scannerId, in AttributionSource attributionSource);
65     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
flushPendingBatchResults(in int scannerId, in AttributionSource attributionSource)66     void flushPendingBatchResults(in int scannerId, in AttributionSource attributionSource);
67 
68     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
startAdvertisingSet(in AdvertisingSetParameters parameters, in AdvertiseData advertiseData, in AdvertiseData scanResponse, in PeriodicAdvertisingParameters periodicParameters, in AdvertiseData periodicData, in int duration, in int maxExtAdvEvents, in int gattServerIf, in IAdvertisingSetCallback callback, in AttributionSource attributionSource)69     void startAdvertisingSet(in AdvertisingSetParameters parameters, in AdvertiseData advertiseData,
70                                 in AdvertiseData scanResponse, in PeriodicAdvertisingParameters periodicParameters,
71                                 in AdvertiseData periodicData, in int duration, in int maxExtAdvEvents, in int gattServerIf,
72                                 in IAdvertisingSetCallback callback, in AttributionSource attributionSource);
73     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
stopAdvertisingSet(in IAdvertisingSetCallback callback, in AttributionSource attributionSource)74     void stopAdvertisingSet(in IAdvertisingSetCallback callback, in AttributionSource attributionSource);
75 
76     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_ADVERTISE,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getOwnAddress(in int advertiserId, in AttributionSource attributionSource)77     void getOwnAddress(in int advertiserId, in AttributionSource attributionSource);
78     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
enableAdvertisingSet(in int advertiserId, in boolean enable, in int duration, in int maxExtAdvEvents, in AttributionSource attributionSource)79     void enableAdvertisingSet(in int advertiserId, in boolean enable, in int duration, in int maxExtAdvEvents, in AttributionSource attributionSource);
80     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
setAdvertisingData(in int advertiserId, in AdvertiseData data, in AttributionSource attributionSource)81     void setAdvertisingData(in int advertiserId, in AdvertiseData data, in AttributionSource attributionSource);
82     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
setScanResponseData(in int advertiserId, in AdvertiseData data, in AttributionSource attributionSource)83     void setScanResponseData(in int advertiserId, in AdvertiseData data, in AttributionSource attributionSource);
84     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
setAdvertisingParameters(in int advertiserId, in AdvertisingSetParameters parameters, in AttributionSource attributionSource)85     void setAdvertisingParameters(in int advertiserId, in AdvertisingSetParameters parameters, in AttributionSource attributionSource);
86     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
setPeriodicAdvertisingParameters(in int advertiserId, in PeriodicAdvertisingParameters parameters, in AttributionSource attributionSource)87     void setPeriodicAdvertisingParameters(in int advertiserId, in PeriodicAdvertisingParameters parameters, in AttributionSource attributionSource);
88     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
setPeriodicAdvertisingData(in int advertiserId, in AdvertiseData data, in AttributionSource attributionSource)89     void setPeriodicAdvertisingData(in int advertiserId, in AdvertiseData data, in AttributionSource attributionSource);
90     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
setPeriodicAdvertisingEnable(in int advertiserId, in boolean enable, in AttributionSource attributionSource)91     void setPeriodicAdvertisingEnable(in int advertiserId, in boolean enable, in AttributionSource attributionSource);
92 
93     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
registerSync(in ScanResult scanResult, in int skip, in int timeout, in IPeriodicAdvertisingCallback callback, in AttributionSource attributionSource)94     void registerSync(in ScanResult scanResult, in int skip, in int timeout, in IPeriodicAdvertisingCallback callback, in AttributionSource attributionSource);
95     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
unregisterSync(in IPeriodicAdvertisingCallback callback, in AttributionSource attributionSource)96     void unregisterSync(in IPeriodicAdvertisingCallback callback, in AttributionSource attributionSource);
97     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
transferSync(in BluetoothDevice bda, in int serviceData, in int syncHandle, in AttributionSource attributionSource)98     void transferSync(in BluetoothDevice bda, in int serviceData, in int syncHandle, in AttributionSource attributionSource);
99     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
transferSetInfo(in BluetoothDevice bda, in int serviceData, in int advertisingHandle, in IPeriodicAdvertisingCallback callback, in AttributionSource attributionSource)100     void transferSetInfo(in BluetoothDevice bda, in int serviceData, in int advertisingHandle, in IPeriodicAdvertisingCallback callback,  in AttributionSource attributionSource);
101 
102     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
registerClient(in ParcelUuid appId, in IBluetoothGattCallback callback, boolean eatt_support, in AttributionSource attributionSource)103     void registerClient(in ParcelUuid appId, in IBluetoothGattCallback callback, boolean eatt_support, in AttributionSource attributionSource);
104 
105     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
unregisterClient(in int clientIf, in AttributionSource attributionSource)106     void unregisterClient(in int clientIf, in AttributionSource attributionSource);
107     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
clientConnect(in int clientIf, in String address, in int addressType, in boolean isDirect, in int transport, in boolean opportunistic, in int phy, in AttributionSource attributionSource)108     void clientConnect(in int clientIf, in String address, in int addressType, in boolean isDirect, in int transport, in boolean opportunistic, in int phy, in AttributionSource attributionSource);
109     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
clientDisconnect(in int clientIf, in String address, in AttributionSource attributionSource)110     void clientDisconnect(in int clientIf, in String address, in AttributionSource attributionSource);
111     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
clientSetPreferredPhy(in int clientIf, in String address, in int txPhy, in int rxPhy, in int phyOptions, in AttributionSource attributionSource)112     void clientSetPreferredPhy(in int clientIf, in String address, in int txPhy, in int rxPhy, in int phyOptions, in AttributionSource attributionSource);
113     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
clientReadPhy(in int clientIf, in String address, in AttributionSource attributionSources)114     void clientReadPhy(in int clientIf, in String address, in AttributionSource attributionSources);
115     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
refreshDevice(in int clientIf, in String address, in AttributionSource attributionSource)116     void refreshDevice(in int clientIf, in String address, in AttributionSource attributionSource);
117     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
discoverServices(in int clientIf, in String address, in AttributionSource attributionSource)118     void discoverServices(in int clientIf, in String address, in AttributionSource attributionSource);
119     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
discoverServiceByUuid(in int clientIf, in String address, in ParcelUuid uuid, in AttributionSource attributionSource)120     void discoverServiceByUuid(in int clientIf, in String address, in ParcelUuid uuid, in AttributionSource attributionSource);
121     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
readCharacteristic(in int clientIf, in String address, in int handle, in int authReq, in AttributionSource attributionSource)122     void readCharacteristic(in int clientIf, in String address, in int handle, in int authReq, in AttributionSource attributionSource);
123     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
readUsingCharacteristicUuid(in int clientIf, in String address, in ParcelUuid uuid, in int startHandle, in int endHandle, in int authReq, in AttributionSource attributionSource)124     void readUsingCharacteristicUuid(in int clientIf, in String address, in ParcelUuid uuid,
125                            in int startHandle, in int endHandle, in int authReq, in AttributionSource attributionSource);
126     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
writeCharacteristic(in int clientIf, in String address, in int handle, in int writeType, in int authReq, in byte[] value, in AttributionSource attributionSource)127     int writeCharacteristic(in int clientIf, in String address, in int handle,
128                             in int writeType, in int authReq, in byte[] value, in AttributionSource attributionSource);
129     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
readDescriptor(in int clientIf, in String address, in int handle, in int authReq, in AttributionSource attributionSource)130     void readDescriptor(in int clientIf, in String address, in int handle, in int authReq, in AttributionSource attributionSource);
131     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
writeDescriptor(in int clientIf, in String address, in int handle, in int authReq, in byte[] value, in AttributionSource attributionSource)132     int writeDescriptor(in int clientIf, in String address, in int handle,
133                             in int authReq, in byte[] value, in AttributionSource attributionSource);
134     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
registerForNotification(in int clientIf, in String address, in int handle, in boolean enable, in AttributionSource attributionSource)135     void registerForNotification(in int clientIf, in String address, in int handle, in boolean enable, in AttributionSource attributionSource);
136     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
beginReliableWrite(in int clientIf, in String address, in AttributionSource attributionSource)137     void beginReliableWrite(in int clientIf, in String address, in AttributionSource attributionSource);
138     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
endReliableWrite(in int clientIf, in String address, in boolean execute, in AttributionSource attributionSource)139     void endReliableWrite(in int clientIf, in String address, in boolean execute, in AttributionSource attributionSource);
140     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
readRemoteRssi(in int clientIf, in String address, in AttributionSource attributionSource)141     void readRemoteRssi(in int clientIf, in String address, in AttributionSource attributionSource);
142     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
configureMTU(in int clientIf, in String address, in int mtu, in AttributionSource attributionSource)143     void configureMTU(in int clientIf, in String address, in int mtu, in AttributionSource attributionSource);
144     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
connectionParameterUpdate(in int clientIf, in String address, in int connectionPriority, in AttributionSource attributionSource)145     void connectionParameterUpdate(in int clientIf, in String address, in int connectionPriority, in AttributionSource attributionSource);
146     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
leConnectionUpdate(int clientIf, String address, int minInterval, int maxInterval, int peripheralLatency, int supervisionTimeout, int minConnectionEventLen, int maxConnectionEventLen, in AttributionSource attributionSource)147     void leConnectionUpdate(int clientIf, String address, int minInterval,
148                             int maxInterval, int peripheralLatency, int supervisionTimeout,
149                             int minConnectionEventLen, int maxConnectionEventLen, in AttributionSource attributionSource);
150 
151     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback, boolean eatt_support, in AttributionSource attributionSource)152     void registerServer(in ParcelUuid appId, in IBluetoothGattServerCallback callback, boolean eatt_support, in AttributionSource attributionSource);
153     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
unregisterServer(in int serverIf, in AttributionSource attributionSource)154     void unregisterServer(in int serverIf, in AttributionSource attributionSource);
155     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
serverConnect(in int serverIf, in String address, in int addressType, in boolean isDirect, in int transport, in AttributionSource attributionSource)156     void serverConnect(in int serverIf, in String address, in int addressType, in boolean isDirect, in int transport, in AttributionSource attributionSource);
157     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
serverDisconnect(in int serverIf, in String address, in AttributionSource attributionSource)158     void serverDisconnect(in int serverIf, in String address, in AttributionSource attributionSource);
159     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
serverSetPreferredPhy(in int clientIf, in String address, in int txPhy, in int rxPhy, in int phyOptions, in AttributionSource attributionSource)160     void serverSetPreferredPhy(in int clientIf, in String address, in int txPhy, in int rxPhy, in int phyOptions, in AttributionSource attributionSource);
161     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
serverReadPhy(in int clientIf, in String address, in AttributionSource attributionSource)162     void serverReadPhy(in int clientIf, in String address, in AttributionSource attributionSource);
163     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
addService(in int serverIf, in BluetoothGattService service, in AttributionSource attributionSource)164     void addService(in int serverIf, in BluetoothGattService service, in AttributionSource attributionSource);
165     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
removeService(in int serverIf, in int handle, in AttributionSource attributionSource)166     void removeService(in int serverIf, in int handle, in AttributionSource attributionSource);
167     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
clearServices(in int serverIf, in AttributionSource attributionSource)168     void clearServices(in int serverIf, in AttributionSource attributionSource);
169     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
sendResponse(in int serverIf, in String address, in int requestId, in int status, in int offset, in byte[] value, in AttributionSource attributionSource)170     void sendResponse(in int serverIf, in String address, in int requestId,
171                             in int status, in int offset, in byte[] value, in AttributionSource attributionSource);
172     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
sendNotification(in int serverIf, in String address, in int handle, in boolean confirm, in byte[] value, in AttributionSource attributionSource)173     int sendNotification(in int serverIf, in String address, in int handle,
174                             in boolean confirm, in byte[] value, in AttributionSource attributionSource);
175     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disconnectAll(in AttributionSource attributionSource)176     void disconnectAll(in AttributionSource attributionSource);
177     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
numHwTrackFiltersAvailable(in AttributionSource attributionSource)178     int numHwTrackFiltersAvailable(in AttributionSource attributionSource);
179     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
leSubrateRequest(in int clientIf, in String address, in int subrateMin, in int subrateMax, in int maxLatency, in int contNumber, in int supervisionTimeout, in AttributionSource attributionSource)180     void leSubrateRequest(in int clientIf, in String address, in int subrateMin, in int subrateMax, in int maxLatency,
181                           in int contNumber, in int supervisionTimeout, in AttributionSource attributionSource);
182     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
subrateModeRequest(in int clientIf, in String address, in int subrateMode, in AttributionSource attributionSource)183     void subrateModeRequest(in int clientIf, in String address, in int subrateMode, in AttributionSource attributionSource);
184     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getSupportedDistanceMeasurementMethods(in AttributionSource attributionSource)185     List<DistanceMeasurementMethod> getSupportedDistanceMeasurementMethods(in AttributionSource attributionSource);
186     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
startDistanceMeasurement(in ParcelUuid uuid, in DistanceMeasurementParams params, in IDistanceMeasurementCallback callback, in AttributionSource attributionSource)187     void startDistanceMeasurement(in ParcelUuid uuid, in DistanceMeasurementParams params, in IDistanceMeasurementCallback callback,
188                             in AttributionSource attributionSource);
189     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
stopDistanceMeasurement(in ParcelUuid uuid, in BluetoothDevice device, in int method, in AttributionSource attributionSource)190     int stopDistanceMeasurement(in ParcelUuid uuid, in BluetoothDevice device, in int method, in AttributionSource attributionSource);
191     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getChannelSoundingMaxSupportedSecurityLevel(in BluetoothDevice remoteDevice, in AttributionSource attributionSource)192     int getChannelSoundingMaxSupportedSecurityLevel(in BluetoothDevice remoteDevice, in AttributionSource attributionSource);
193     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getLocalChannelSoundingMaxSupportedSecurityLevel(in AttributionSource attributionSource)194     int getLocalChannelSoundingMaxSupportedSecurityLevel(in AttributionSource attributionSource);
195 }
196