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