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