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.IBluetoothCallback;
20 import android.bluetooth.IBluetoothConnectionCallback;
21 import android.bluetooth.IBluetoothMetadataListener;
22 import android.bluetooth.IBluetoothOobDataCallback;
23 import android.bluetooth.IBluetoothSocketManager;
24 import android.bluetooth.IBluetoothStateChangeCallback;
25 import android.bluetooth.BluetoothActivityEnergyInfo;
26 import android.bluetooth.BluetoothClass;
27 import android.bluetooth.BluetoothDevice;
28 import android.bluetooth.OobData;
29 import android.content.AttributionSource;
30 import android.os.ParcelUuid;
31 import android.os.ParcelFileDescriptor;
32 import android.os.ResultReceiver;
33 
34 /**
35  * System private API for talking with the Bluetooth service.
36  *
37  * {@hide}
38  */
39 interface IBluetooth
40 {
41     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getState()42     int getState();
43 
44     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
enable(boolean quietMode, in AttributionSource attributionSource)45     boolean enable(boolean quietMode, in AttributionSource attributionSource);
46     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
disable(in AttributionSource attributionSource)47     boolean disable(in AttributionSource attributionSource);
48 
49     @UnsupportedAppUsage
50     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})")
getAddress()51     String getAddress();
52     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})")
getAddressWithAttribution(in AttributionSource attributionSource)53     String getAddressWithAttribution(in AttributionSource attributionSource);
54     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getUuids(in AttributionSource attributionSource)55     ParcelUuid[] getUuids(in AttributionSource attributionSource);
56     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setName(in String name, in AttributionSource attributionSource)57     boolean setName(in String name, in AttributionSource attributionSource);
58     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getName(in AttributionSource attributionSource)59     String getName(in AttributionSource attributionSource);
60     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
getNameLengthForAdvertise(in AttributionSource attributionSource)61     int getNameLengthForAdvertise(in AttributionSource attributionSource);
62     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBluetoothClass(in AttributionSource attributionSource)63     BluetoothClass getBluetoothClass(in AttributionSource attributionSource);
64     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setBluetoothClass(in BluetoothClass bluetoothClass, in AttributionSource attributionSource)65     boolean setBluetoothClass(in BluetoothClass bluetoothClass, in AttributionSource attributionSource);
66 
67     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getIoCapability(in AttributionSource attributionSource)68     int getIoCapability(in AttributionSource attributionSource);
69     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setIoCapability(int capability, in AttributionSource attributionSource)70     boolean setIoCapability(int capability, in AttributionSource attributionSource);
71     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getLeIoCapability(in AttributionSource attributionSource)72     int getLeIoCapability(in AttributionSource attributionSource);
73     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setLeIoCapability(int capability, in AttributionSource attributionSource)74     boolean setLeIoCapability(int capability, in AttributionSource attributionSource);
75 
76     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
getScanMode(in AttributionSource attributionSource)77     int getScanMode(in AttributionSource attributionSource);
78     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
setScanMode(int mode, int duration, in AttributionSource attributionSource)79     boolean setScanMode(int mode, int duration, in AttributionSource attributionSource);
80 
81     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
getDiscoverableTimeout(in AttributionSource attributionSource)82     int getDiscoverableTimeout(in AttributionSource attributionSource);
83     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
setDiscoverableTimeout(int timeout, in AttributionSource attributionSource)84     boolean setDiscoverableTimeout(int timeout, in AttributionSource attributionSource);
85 
86     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
startDiscovery(in AttributionSource attributionSource)87     boolean startDiscovery(in AttributionSource attributionSource);
88     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
cancelDiscovery(in AttributionSource attributionSource)89     boolean cancelDiscovery(in AttributionSource attributionSource);
90     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
isDiscovering(in AttributionSource attributionSource)91     boolean isDiscovering(in AttributionSource attributionSource);
92     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getDiscoveryEndMillis(in AttributionSource attributionSource)93     long getDiscoveryEndMillis(in AttributionSource attributionSource);
94 
95     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getAdapterConnectionState()96     int getAdapterConnectionState();
97     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getProfileConnectionState(int profile)98     int getProfileConnectionState(int profile);
99 
100     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBondedDevices(in AttributionSource attributionSource)101     BluetoothDevice[] getBondedDevices(in AttributionSource attributionSource);
102     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
createBond(in BluetoothDevice device, in int transport, in OobData p192Data, in OobData p256Data, in AttributionSource attributionSource)103     boolean createBond(in BluetoothDevice device, in int transport, in OobData p192Data, in OobData p256Data, in AttributionSource attributionSource);
104     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
cancelBondProcess(in BluetoothDevice device, in AttributionSource attributionSource)105     boolean cancelBondProcess(in BluetoothDevice device, in AttributionSource attributionSource);
106     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
removeBond(in BluetoothDevice device, in AttributionSource attributionSource)107     boolean removeBond(in BluetoothDevice device, in AttributionSource attributionSource);
108     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBondState(in BluetoothDevice device, in AttributionSource attributionSource)109     int getBondState(in BluetoothDevice device, in AttributionSource attributionSource);
110     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
isBondingInitiatedLocally(in BluetoothDevice device, in AttributionSource attributionSource)111     boolean isBondingInitiatedLocally(in BluetoothDevice device, in AttributionSource attributionSource);
112     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getSupportedProfiles()113     long getSupportedProfiles();
114     @UnsupportedAppUsage
115     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionState(in BluetoothDevice device)116     int getConnectionState(in BluetoothDevice device);
117     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionStateWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource)118     int getConnectionStateWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource);
119     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteName(in BluetoothDevice device, in AttributionSource attributionSource)120     String getRemoteName(in BluetoothDevice device, in AttributionSource attributionSource);
121     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteType(in BluetoothDevice device, in AttributionSource attributionSource)122     int getRemoteType(in BluetoothDevice device, in AttributionSource attributionSource);
123     @UnsupportedAppUsage
124     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteAlias(in BluetoothDevice device)125     String getRemoteAlias(in BluetoothDevice device);
126     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteAliasWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource)127     String getRemoteAliasWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource);
128     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setRemoteAlias(in BluetoothDevice device, in String name, in AttributionSource attributionSource)129     int setRemoteAlias(in BluetoothDevice device, in String name, in AttributionSource attributionSource);
130     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource)131     int getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource);
132     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource)133     ParcelUuid[] getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource);
134     @UnsupportedAppUsage
135     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
fetchRemoteUuids(in BluetoothDevice device)136     boolean fetchRemoteUuids(in BluetoothDevice device);
137     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
fetchRemoteUuidsWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource)138     boolean fetchRemoteUuidsWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource);
139     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource)140     boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource);
141     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBatteryLevel(in BluetoothDevice device, in AttributionSource attributionSource)142     int getBatteryLevel(in BluetoothDevice device, in AttributionSource attributionSource);
143     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getMaxConnectedAudioDevices(in AttributionSource attributionSource)144     int getMaxConnectedAudioDevices(in AttributionSource attributionSource);
145 
146     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode, in AttributionSource attributionSource)147     boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode, in AttributionSource attributionSource);
148     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey, in AttributionSource attributionSource)149     boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey, in AttributionSource attributionSource);
150     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setPairingConfirmation(in BluetoothDevice device, boolean accept, in AttributionSource attributionSource)151     boolean setPairingConfirmation(in BluetoothDevice device, boolean accept, in AttributionSource attributionSource);
152 
153     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getPhonebookAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource)154     int getPhonebookAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource);
155     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setSilenceMode(in BluetoothDevice device, boolean silence, in AttributionSource attributionSource)156     boolean setSilenceMode(in BluetoothDevice device, boolean silence, in AttributionSource attributionSource);
157     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getSilenceMode(in BluetoothDevice device, in AttributionSource attributionSource)158     boolean getSilenceMode(in BluetoothDevice device, in AttributionSource attributionSource);
159     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setPhonebookAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource)160     boolean setPhonebookAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource);
161     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getMessageAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource)162     int getMessageAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource);
163     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setMessageAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource)164     boolean setMessageAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource);
165     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getSimAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource)166     int getSimAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource);
167     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setSimAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource)168     boolean setSimAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource);
169 
170     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerCallback(in IBluetoothCallback callback, in AttributionSource attributionSource)171     void registerCallback(in IBluetoothCallback callback, in AttributionSource attributionSource);
172     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterCallback(in IBluetoothCallback callback, in AttributionSource attributionSource)173     void unregisterCallback(in IBluetoothCallback callback, in AttributionSource attributionSource);
174 
175     // For Socket
176     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getSocketManager()177     IBluetoothSocketManager getSocketManager();
178 
179     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
factoryReset(in AttributionSource attributionSource)180     boolean factoryReset(in AttributionSource attributionSource);
181 
182     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isMultiAdvertisementSupported()183     boolean isMultiAdvertisementSupported();
184     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isOffloadedFilteringSupported()185     boolean isOffloadedFilteringSupported();
186     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isOffloadedScanBatchingSupported()187     boolean isOffloadedScanBatchingSupported();
188     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isActivityAndEnergyReportingSupported()189     boolean isActivityAndEnergyReportingSupported();
190     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLe2MPhySupported()191     boolean isLe2MPhySupported();
192     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeCodedPhySupported()193     boolean isLeCodedPhySupported();
194     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeExtendedAdvertisingSupported()195     boolean isLeExtendedAdvertisingSupported();
196     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLePeriodicAdvertisingSupported()197     boolean isLePeriodicAdvertisingSupported();
198     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getLeMaximumAdvertisingDataLength()199     int getLeMaximumAdvertisingDataLength();
200 
201     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
reportActivityInfo(in AttributionSource attributionSource)202     BluetoothActivityEnergyInfo reportActivityInfo(in AttributionSource attributionSource);
203 
204     // For Metadata
205     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device, in AttributionSource attributionSource)206     boolean registerMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device, in AttributionSource attributionSource);
207     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterMetadataListener(in BluetoothDevice device, in AttributionSource attributionSource)208     boolean unregisterMetadataListener(in BluetoothDevice device, in AttributionSource attributionSource);
209     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setMetadata(in BluetoothDevice device, in int key, in byte[] value, in AttributionSource attributionSource)210     boolean setMetadata(in BluetoothDevice device, in int key, in byte[] value, in AttributionSource attributionSource);
211     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getMetadata(in BluetoothDevice device, in int key, in AttributionSource attributionSource)212     byte[] getMetadata(in BluetoothDevice device, in int key, in AttributionSource attributionSource);
213 
214     /**
215      * Requests the controller activity info asynchronously.
216      * The implementor is expected to reply with the
217      * {@link android.bluetooth.BluetoothActivityEnergyInfo} object placed into the Bundle with the
218      * key {@link android.os.BatteryStats#RESULT_RECEIVER_CONTROLLER_KEY}.
219      * The result code is ignored.
220      */
221     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
requestActivityInfo(in ResultReceiver result, in AttributionSource attributionSource)222     oneway void requestActivityInfo(in ResultReceiver result, in AttributionSource attributionSource);
223 
224     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
onLeServiceUp(in AttributionSource attributionSource)225     void onLeServiceUp(in AttributionSource attributionSource);
226     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
onBrEdrDown(in AttributionSource attributionSource)227     void onBrEdrDown(in AttributionSource attributionSource);
228 
229     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})")
connectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource)230     boolean connectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource);
231     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
disconnectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource)232     boolean disconnectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource);
233 
234     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})")
setActiveDevice(in BluetoothDevice device, in int profiles, in AttributionSource attributionSource)235     boolean setActiveDevice(in BluetoothDevice device, in int profiles, in AttributionSource attributionSource);
236     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getMostRecentlyConnectedDevices(in AttributionSource attributionSource)237     List<BluetoothDevice> getMostRecentlyConnectedDevices(in AttributionSource attributionSource);
238     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})")
removeActiveDevice(in int profiles, in AttributionSource attributionSource)239     boolean removeActiveDevice(in int profiles, in AttributionSource attributionSource);
240 
241     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource)242     boolean registerBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource);
243     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource)244     boolean unregisterBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource);
245 
246     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
canBondWithoutDialog(in BluetoothDevice device, in AttributionSource attributionSource)247     boolean canBondWithoutDialog(in BluetoothDevice device, in AttributionSource attributionSource);
248     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
generateLocalOobData(in int transport, IBluetoothOobDataCallback callback, in AttributionSource attributionSource)249     void generateLocalOobData(in int transport, IBluetoothOobDataCallback callback, in AttributionSource attributionSource);
250 }
251