• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.app.PendingIntent;
20 import android.bluetooth.IBluetoothActivityEnergyInfoListener;
21 import android.bluetooth.IBluetoothGatt;
22 import android.bluetooth.IBluetoothHciVendorSpecificCallback;
23 import android.bluetooth.IBluetoothPreferredAudioProfilesCallback;
24 import android.bluetooth.IBluetoothQualityReportReadyCallback;
25 import android.bluetooth.IBluetoothCallback;
26 import android.bluetooth.IBluetoothConnectionCallback;
27 import android.bluetooth.IBluetoothMetadataListener;
28 import android.bluetooth.IBluetoothOobDataCallback;
29 import android.bluetooth.IBluetoothSocketManager;
30 import android.bluetooth.BluetoothActivityEnergyInfo;
31 import android.bluetooth.BluetoothSinkAudioPolicy;
32 import android.bluetooth.BluetoothClass;
33 import android.bluetooth.BluetoothDevice;
34 import android.bluetooth.BluetoothDevice.BluetoothAddress;
35 import android.bluetooth.BluetoothQualityReport;
36 import android.bluetooth.IncomingRfcommSocketInfo;
37 import android.bluetooth.OobData;
38 import android.content.AttributionSource;
39 import android.os.Bundle;
40 import android.os.ParcelUuid;
41 import android.os.ParcelFileDescriptor;
42 import android.os.ResultReceiver;
43 
44 parcelable BluetoothDevice.BluetoothAddress;
45 
46 /**
47  * System private API for talking with the Bluetooth service.
48  *
49  * {@hide}
50  */
51 interface IBluetooth
52 {
53     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getState()54     int getState();
55 
56     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
offToBleOn(boolean quietMode, in AttributionSource attributionSource)57     oneway void offToBleOn(boolean quietMode, in AttributionSource attributionSource);
58     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
onToBleOn(in AttributionSource attributionSource)59     oneway void onToBleOn(in AttributionSource attributionSource);
60 
61     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})")
getAddress(in AttributionSource attributionSource)62     String getAddress(in AttributionSource attributionSource);
63     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getUuids(in AttributionSource attributionSource)64     List<ParcelUuid> getUuids(in AttributionSource attributionSource);
65     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setName(in String name, in AttributionSource attributionSource)66     boolean setName(in String name, in AttributionSource attributionSource);
67     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getIdentityAddress(in String address)68     String getIdentityAddress(in String address);
69     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getIdentityAddressWithType(in String address)70     BluetoothDevice.BluetoothAddress getIdentityAddressWithType(in String address);
71     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getName(in AttributionSource attributionSource)72     String getName(in AttributionSource attributionSource);
73     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)")
getNameLengthForAdvertise(in AttributionSource attributionSource)74     int getNameLengthForAdvertise(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(allOf={android.Manifest.permission.BLUETOOTH_SCAN,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setScanMode(int mode, in AttributionSource attributionSource)79     int setScanMode(int mode, in AttributionSource attributionSource);
80 
81     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)")
getDiscoverableTimeout(in AttributionSource attributionSource)82     long getDiscoverableTimeout(in AttributionSource attributionSource);
83     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setDiscoverableTimeout(long timeout, in AttributionSource attributionSource)84     int setDiscoverableTimeout(long 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.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getProfileConnectionState(int profile, in AttributionSource source)98     int getProfileConnectionState(int profile, in AttributionSource source);
99 
100     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBondedDevices(in AttributionSource attributionSource)101     List<BluetoothDevice> getBondedDevices(in AttributionSource attributionSource);
102     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
createBond(in BluetoothDevice device, in int transport, in AttributionSource attributionSource)103     boolean createBond(in BluetoothDevice device, in int transport, in AttributionSource attributionSource);
104     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
createBondOutOfBand(in BluetoothDevice device, in int transport, in OobData p192Data, in OobData p256Data, in AttributionSource attributionSource)105     boolean createBondOutOfBand(in BluetoothDevice device, in int transport, in OobData p192Data, in OobData p256Data, in AttributionSource attributionSource);
106     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
cancelBondProcess(in BluetoothDevice device, in AttributionSource attributionSource)107     boolean cancelBondProcess(in BluetoothDevice device, in AttributionSource attributionSource);
108     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
removeBond(in BluetoothDevice device, in AttributionSource attributionSource)109     boolean removeBond(in BluetoothDevice device, in AttributionSource attributionSource);
110     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBondState(in BluetoothDevice device, in AttributionSource attributionSource)111     int getBondState(in BluetoothDevice device, in AttributionSource attributionSource);
112     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
isBondingInitiatedLocally(in BluetoothDevice device, in AttributionSource attributionSource)113     boolean isBondingInitiatedLocally(in BluetoothDevice device, in AttributionSource attributionSource);
114     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getSupportedProfiles(in AttributionSource attributionSource)115     long getSupportedProfiles(in AttributionSource attributionSource);
116     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource)117     int getConnectionState(in BluetoothDevice device, in AttributionSource attributionSource);
118     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getConnectionHandle(in BluetoothDevice device, int transport, in AttributionSource attributionSource)119     int getConnectionHandle(in BluetoothDevice device, int transport, in AttributionSource attributionSource);
120     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteName(in BluetoothDevice device, in AttributionSource attributionSource)121     String getRemoteName(in BluetoothDevice device, in AttributionSource attributionSource);
122     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteType(in BluetoothDevice device, in AttributionSource attributionSource)123     int getRemoteType(in BluetoothDevice device, in AttributionSource attributionSource);
124     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteAlias(in BluetoothDevice device, in AttributionSource attributionSource)125     String getRemoteAlias(in BluetoothDevice device, in AttributionSource attributionSource);
126     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true)")
setRemoteAlias(in BluetoothDevice device, in String name, in AttributionSource attributionSource)127     int setRemoteAlias(in BluetoothDevice device, in String name, in AttributionSource attributionSource);
128     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource)129     int getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource);
130     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource)131     List<ParcelUuid> getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource);
132     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED}, conditional=true)")
fetchRemoteUuids(in BluetoothDevice device, in int transport, in AttributionSource attributionSource)133     boolean fetchRemoteUuids(in BluetoothDevice device, in int transport, in AttributionSource attributionSource);
134     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource)135     boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource);
136     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getBatteryLevel(in BluetoothDevice device, in AttributionSource attributionSource)137     int getBatteryLevel(in BluetoothDevice device, in AttributionSource attributionSource);
138     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getMaxConnectedAudioDevices(in AttributionSource attributionSource)139     int getMaxConnectedAudioDevices(in AttributionSource attributionSource);
140 
141     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode, in AttributionSource attributionSource)142     boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode, in AttributionSource attributionSource);
143     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey, in AttributionSource attributionSource)144     boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey, in AttributionSource attributionSource);
145     @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)146     boolean setPairingConfirmation(in BluetoothDevice device, boolean accept, in AttributionSource attributionSource);
147 
148     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getPhonebookAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource)149     int getPhonebookAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource);
150     @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)151     boolean setSilenceMode(in BluetoothDevice device, boolean silence, in AttributionSource attributionSource);
152     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getSilenceMode(in BluetoothDevice device, in AttributionSource attributionSource)153     boolean getSilenceMode(in BluetoothDevice device, in AttributionSource attributionSource);
154     @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)155     boolean setPhonebookAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource);
156     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getMessageAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource)157     int getMessageAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource);
158     @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)159     boolean setMessageAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource);
160     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getSimAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource)161     int getSimAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource);
162     @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)163     boolean setSimAccessPermission(in BluetoothDevice device, int value, in AttributionSource attributionSource);
164 
165     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerCallback(in IBluetoothCallback callback, in AttributionSource attributionSource)166     oneway void registerCallback(in IBluetoothCallback callback, in AttributionSource attributionSource);
167     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterCallback(in IBluetoothCallback callback, in AttributionSource attributionSource)168     oneway void unregisterCallback(in IBluetoothCallback callback, in AttributionSource attributionSource);
169 
170     // For Socket
171     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
logL2capcocServerConnection(in BluetoothDevice device, int port, boolean isSecured, int result, long socketCreationTimeMillis, long socketCreationLatencyMillis, long socketConnectionTimeMillis, long timeoutMillis)172     void logL2capcocServerConnection(in BluetoothDevice device, int port, boolean isSecured, int result, long socketCreationTimeMillis, long socketCreationLatencyMillis, long socketConnectionTimeMillis, long timeoutMillis);
173 
174     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getSocketManager()175     IBluetoothSocketManager getSocketManager();
176 
177     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
logL2capcocClientConnection(in BluetoothDevice device, int port, boolean isSecured, int result, long socketCreationTimeNanos, long socketCreationLatencyNanos, long socketConnectionTimeNanos)178     void logL2capcocClientConnection(in BluetoothDevice device, int port, boolean isSecured, int result, long socketCreationTimeNanos, long socketCreationLatencyNanos, long socketConnectionTimeNanos);
179     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
logRfcommConnectionAttempt(in BluetoothDevice device, boolean isSecured, int resultCode, long socketCreationTimeNanos, boolean isSerialPort)180     void logRfcommConnectionAttempt(in BluetoothDevice device, boolean isSecured, int resultCode, long socketCreationTimeNanos, boolean isSerialPort);
181 
182     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
factoryReset(in AttributionSource attributionSource)183     boolean factoryReset(in AttributionSource attributionSource);
184 
185     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isMultiAdvertisementSupported()186     boolean isMultiAdvertisementSupported();
187     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isOffloadedFilteringSupported()188     boolean isOffloadedFilteringSupported();
189     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isOffloadedScanBatchingSupported()190     boolean isOffloadedScanBatchingSupported();
191     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isActivityAndEnergyReportingSupported()192     boolean isActivityAndEnergyReportingSupported();
193     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLe2MPhySupported()194     boolean isLe2MPhySupported();
195     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeCodedPhySupported()196     boolean isLeCodedPhySupported();
197     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeExtendedAdvertisingSupported()198     boolean isLeExtendedAdvertisingSupported();
199     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLePeriodicAdvertisingSupported()200     boolean isLePeriodicAdvertisingSupported();
201     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeAudioSupported()202     int isLeAudioSupported();
203     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeAudioBroadcastSourceSupported()204     int isLeAudioBroadcastSourceSupported();
205     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
isLeAudioBroadcastAssistantSupported()206     int isLeAudioBroadcastAssistantSupported();
207     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
isDistanceMeasurementSupported(in AttributionSource attributionSource)208     int isDistanceMeasurementSupported(in AttributionSource attributionSource);
209     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getLeMaximumAdvertisingDataLength()210     int getLeMaximumAdvertisingDataLength();
211 
212     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
reportActivityInfo(in AttributionSource attributionSource)213     BluetoothActivityEnergyInfo reportActivityInfo(in AttributionSource attributionSource);
214 
215     // For Metadata
216     @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)217     boolean registerMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device, in AttributionSource attributionSource);
218     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device, in AttributionSource attributionSource)219     boolean unregisterMetadataListener(in IBluetoothMetadataListener listener, in BluetoothDevice device, in AttributionSource attributionSource);
220     @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)221     boolean setMetadata(in BluetoothDevice device, in int key, in byte[] value, in AttributionSource attributionSource);
222     @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)223     byte[] getMetadata(in BluetoothDevice device, in int key, in AttributionSource attributionSource);
224 
225     /**
226      * Requests the controller activity info asynchronously.
227      * The implementor is expected to reply with the
228      * {@link android.bluetooth.BluetoothActivityEnergyInfo} object placed into the Bundle with the
229      * key {@link android.os.BatteryStats#RESULT_RECEIVER_CONTROLLER_KEY}.
230      * The result code is ignored.
231      */
232     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
requestActivityInfo(in IBluetoothActivityEnergyInfoListener listener, in AttributionSource attributionSource)233     oneway void requestActivityInfo(in IBluetoothActivityEnergyInfoListener listener, in AttributionSource attributionSource);
234 
235     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
bleOnToOn(in AttributionSource attributionSource)236     oneway void bleOnToOn(in AttributionSource attributionSource);
237     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
bleOnToOff(in AttributionSource attributionSource)238     oneway void bleOnToOff(in AttributionSource attributionSource);
239 
240     @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)241     int connectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource);
242     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
disconnectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource)243     int disconnectAllEnabledProfiles(in BluetoothDevice device, in AttributionSource attributionSource);
244 
245     @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)246     boolean setActiveDevice(in BluetoothDevice device, in int profiles, in AttributionSource attributionSource);
247     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getActiveDevices(in int profile, in AttributionSource attributionSource)248     List<BluetoothDevice> getActiveDevices(in int profile, in AttributionSource attributionSource);
249     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getMostRecentlyConnectedDevices(in AttributionSource attributionSource)250     List<BluetoothDevice> getMostRecentlyConnectedDevices(in AttributionSource attributionSource);
251     @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)252     boolean removeActiveDevice(in int profiles, in AttributionSource attributionSource);
253 
254     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource)255     oneway void registerBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource);
256     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource)257     oneway void unregisterBluetoothConnectionCallback(in IBluetoothConnectionCallback callback, in AttributionSource attributionSource);
258 
259     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
canBondWithoutDialog(in BluetoothDevice device, in AttributionSource attributionSource)260     boolean canBondWithoutDialog(in BluetoothDevice device, in AttributionSource attributionSource);
261     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getPackageNameOfBondingApplication(in BluetoothDevice device, in AttributionSource attributionSource)262     String getPackageNameOfBondingApplication(in BluetoothDevice device, in AttributionSource attributionSource);
263     @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)264     void generateLocalOobData(in int transport, IBluetoothOobDataCallback callback, in AttributionSource attributionSource);
265 
266     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
allowLowLatencyAudio(in boolean allowed, in BluetoothDevice device)267     boolean allowLowLatencyAudio(in boolean allowed, in BluetoothDevice device);
268 
269     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
isRequestAudioPolicyAsSinkSupported(in BluetoothDevice device, in AttributionSource attributionSource)270     int isRequestAudioPolicyAsSinkSupported(in BluetoothDevice device, in AttributionSource attributionSource);
271     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
requestAudioPolicyAsSink(in BluetoothDevice device, in BluetoothSinkAudioPolicy policies, in AttributionSource attributionSource)272     int requestAudioPolicyAsSink(in BluetoothDevice device, in BluetoothSinkAudioPolicy policies, in AttributionSource attributionSource);
273     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getRequestedAudioPolicyAsSink(in BluetoothDevice device, in AttributionSource attributionSource)274     BluetoothSinkAudioPolicy getRequestedAudioPolicyAsSink(in BluetoothDevice device, in AttributionSource attributionSource);
275 
276     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
startRfcommListener(String name, in ParcelUuid uuid, in PendingIntent intent, in AttributionSource attributionSource)277     int startRfcommListener(String name, in ParcelUuid uuid, in PendingIntent intent, in AttributionSource attributionSource);
278     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
stopRfcommListener(in ParcelUuid uuid, in AttributionSource attributionSource)279     int stopRfcommListener(in ParcelUuid uuid, in AttributionSource attributionSource);
280     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
retrievePendingSocketForServiceRecord(in ParcelUuid uuid, in AttributionSource attributionSource)281     IncomingRfcommSocketInfo retrievePendingSocketForServiceRecord(in ParcelUuid uuid, in AttributionSource attributionSource);
282 
283     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setForegroundUserId(in int userId, in AttributionSource attributionSource)284     oneway void setForegroundUserId(in int userId, in AttributionSource attributionSource);
285 
286     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setPreferredAudioProfiles(in BluetoothDevice device, in Bundle modeToProfileBundle, in AttributionSource source)287     int setPreferredAudioProfiles(in BluetoothDevice device, in Bundle modeToProfileBundle, in AttributionSource source);
288     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getPreferredAudioProfiles(in BluetoothDevice device, in AttributionSource source)289     Bundle getPreferredAudioProfiles(in BluetoothDevice device, in AttributionSource source);
290     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
isDualModeAudioEnabled(in AttributionSource attributionSource)291     int isDualModeAudioEnabled(in AttributionSource attributionSource);
292     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerPreferredAudioProfilesChangedCallback(in IBluetoothPreferredAudioProfilesCallback callback, in AttributionSource attributionSource)293     int registerPreferredAudioProfilesChangedCallback(in IBluetoothPreferredAudioProfilesCallback callback, in AttributionSource attributionSource);
294     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterPreferredAudioProfilesChangedCallback(in IBluetoothPreferredAudioProfilesCallback callback, in AttributionSource attributionSource)295     int unregisterPreferredAudioProfilesChangedCallback(in IBluetoothPreferredAudioProfilesCallback callback, in AttributionSource attributionSource);
296     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
notifyActiveDeviceChangeApplied(in BluetoothDevice device, in AttributionSource attributionSource)297     int notifyActiveDeviceChangeApplied(in BluetoothDevice device, in AttributionSource attributionSource);
298 
299     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
registerBluetoothQualityReportReadyCallback(in IBluetoothQualityReportReadyCallback callback, in AttributionSource attributionSource)300     int registerBluetoothQualityReportReadyCallback(in IBluetoothQualityReportReadyCallback callback, in AttributionSource attributionSource);
301     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregisterBluetoothQualityReportReadyCallback(in IBluetoothQualityReportReadyCallback callback, in AttributionSource attributionSource)302     int unregisterBluetoothQualityReportReadyCallback(in IBluetoothQualityReportReadyCallback callback, in AttributionSource attributionSource);
303 
304     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
registerHciVendorSpecificCallback(in IBluetoothHciVendorSpecificCallback callback, in int[] eventCodes)305     void registerHciVendorSpecificCallback(in IBluetoothHciVendorSpecificCallback callback, in int[] eventCodes);
306     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
unregisterHciVendorSpecificCallback(in IBluetoothHciVendorSpecificCallback callback)307     void unregisterHciVendorSpecificCallback(in IBluetoothHciVendorSpecificCallback callback);
308     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
sendHciVendorSpecificCommand(in int ocf, in byte[] parameters, in IBluetoothHciVendorSpecificCallback callback)309     void sendHciVendorSpecificCommand(in int ocf, in byte[] parameters, in IBluetoothHciVendorSpecificCallback callback);
310 
311     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getOffloadedTransportDiscoveryDataScanSupported(in AttributionSource attributionSource)312     int getOffloadedTransportDiscoveryDataScanSupported(in AttributionSource attributionSource);
313 
314     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
isMediaProfileConnected(in AttributionSource attributionSource)315     boolean isMediaProfileConnected(in AttributionSource attributionSource);
316 
317     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getBluetoothGatt()318     IBinder getBluetoothGatt();
319 
320     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getBluetoothScan()321     IBinder getBluetoothScan();
322 
323     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
unregAllGattClient(in AttributionSource attributionSource)324     oneway void unregAllGattClient(in AttributionSource attributionSource);
325 
326     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getProfile(int profile)327     IBinder getProfile(int profile);
328 
329     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setActiveAudioDevicePolicy(in BluetoothDevice device, int activeAudioDevicePolicy, in AttributionSource source)330     int setActiveAudioDevicePolicy(in BluetoothDevice device, int activeAudioDevicePolicy, in AttributionSource source);
331 
332     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
getActiveAudioDevicePolicy(in BluetoothDevice device, in AttributionSource source)333     int getActiveAudioDevicePolicy(in BluetoothDevice device, in AttributionSource source);
334 
335     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
setMicrophonePreferredForCalls(in BluetoothDevice device, in boolean enabled, in AttributionSource source)336     int setMicrophonePreferredForCalls(in BluetoothDevice device, in boolean enabled, in AttributionSource source);
337 
338     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED})")
isMicrophonePreferredForCalls(in BluetoothDevice device, in AttributionSource source)339     boolean isMicrophonePreferredForCalls(in BluetoothDevice device, in AttributionSource source);
340 
341     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
killBluetoothProcess()342     oneway void killBluetoothProcess();
343 
344     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
isLeCocSocketOffloadSupported(in AttributionSource source)345     boolean isLeCocSocketOffloadSupported(in AttributionSource source);
346 
347     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)")
isRfcommSocketOffloadSupported(in AttributionSource source)348     boolean isRfcommSocketOffloadSupported(in AttributionSource source);
349 
350     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getBluetoothAdvertise()351     IBinder getBluetoothAdvertise();
352 
353     @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
getDistanceMeasurement()354     IBinder getDistanceMeasurement();
355 
356     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)")
getKeyMissingCount(in BluetoothDevice device, in AttributionSource source)357     int getKeyMissingCount(in BluetoothDevice device, in AttributionSource source);
358 }
359