Merge "Add BLUETOOTH_PRIVILEGED permission as a requirement for all new Bluetooth SystemApis and for hidden connect/disconnect APIs."
This commit is contained in:
@@ -1292,16 +1292,8 @@ package android.app.usage {
|
|||||||
package android.bluetooth {
|
package android.bluetooth {
|
||||||
|
|
||||||
public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
|
public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void disableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void enableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothDevice getActiveDevice();
|
|
||||||
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothCodecStatus getCodecStatus(@NonNull android.bluetooth.BluetoothDevice);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int isOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int isOptionalCodecsSupported(@NonNull android.bluetooth.BluetoothDevice);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setCodecConfigPreference(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothCodecConfig);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice, int);
|
|
||||||
field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0
|
field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0
|
||||||
field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0
|
field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0
|
||||||
field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1
|
field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1
|
||||||
@@ -1312,28 +1304,23 @@ package android.bluetooth {
|
|||||||
|
|
||||||
public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile {
|
public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile {
|
||||||
method public void finalize();
|
method public void finalize();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isAudioPlaying(@Nullable android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isAudioPlaying(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED";
|
field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED";
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class BluetoothAdapter {
|
public final class BluetoothAdapter {
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean connectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
|
|
||||||
method public boolean disableBLE();
|
method public boolean disableBLE();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean disconnectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
|
|
||||||
method public boolean enableBLE();
|
method public boolean enableBLE();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enableNoAutoConnect();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enableNoAutoConnect();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean factoryReset();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public long getDiscoveryEndMillis();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long getDiscoveryEndMillis();
|
|
||||||
method public boolean isBleScanAlwaysAvailable();
|
method public boolean isBleScanAlwaysAvailable();
|
||||||
method public boolean isLeEnabled();
|
method public boolean isLeEnabled();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeActiveDevice(int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeActiveDevice(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setScanMode(int, long);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setScanMode(int);
|
|
||||||
field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
|
field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
|
||||||
field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
|
field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
|
||||||
field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
|
field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
|
||||||
@@ -1345,70 +1332,17 @@ package android.bluetooth {
|
|||||||
method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]);
|
method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class BluetoothCodecConfig implements android.os.Parcelable {
|
|
||||||
ctor public BluetoothCodecConfig(int, int, int, int, int, long, long, long, long);
|
|
||||||
ctor public BluetoothCodecConfig(int);
|
|
||||||
method public int getBitsPerSample();
|
|
||||||
method @NonNull public String getCodecName();
|
|
||||||
method public int getCodecPriority();
|
|
||||||
method public long getCodecSpecific1();
|
|
||||||
method public int getCodecType();
|
|
||||||
method public int getSampleRate();
|
|
||||||
method public boolean isMandatoryCodec();
|
|
||||||
field public static final int BITS_PER_SAMPLE_16 = 1; // 0x1
|
|
||||||
field public static final int BITS_PER_SAMPLE_24 = 2; // 0x2
|
|
||||||
field public static final int BITS_PER_SAMPLE_32 = 4; // 0x4
|
|
||||||
field public static final int BITS_PER_SAMPLE_NONE = 0; // 0x0
|
|
||||||
field public static final int CHANNEL_MODE_MONO = 1; // 0x1
|
|
||||||
field public static final int CHANNEL_MODE_NONE = 0; // 0x0
|
|
||||||
field public static final int CHANNEL_MODE_STEREO = 2; // 0x2
|
|
||||||
field public static final int CODEC_PRIORITY_DEFAULT = 0; // 0x0
|
|
||||||
field public static final int CODEC_PRIORITY_DISABLED = -1; // 0xffffffff
|
|
||||||
field public static final int CODEC_PRIORITY_HIGHEST = 1000000; // 0xf4240
|
|
||||||
field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecConfig> CREATOR;
|
|
||||||
field public static final int SAMPLE_RATE_176400 = 16; // 0x10
|
|
||||||
field public static final int SAMPLE_RATE_192000 = 32; // 0x20
|
|
||||||
field public static final int SAMPLE_RATE_44100 = 1; // 0x1
|
|
||||||
field public static final int SAMPLE_RATE_48000 = 2; // 0x2
|
|
||||||
field public static final int SAMPLE_RATE_88200 = 4; // 0x4
|
|
||||||
field public static final int SAMPLE_RATE_96000 = 8; // 0x8
|
|
||||||
field public static final int SAMPLE_RATE_NONE = 0; // 0x0
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_AAC = 1; // 0x1
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_APTX = 2; // 0x2
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_APTX_HD = 3; // 0x3
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_INVALID = 1000000; // 0xf4240
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_LDAC = 4; // 0x4
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_MAX = 5; // 0x5
|
|
||||||
field public static final int SOURCE_CODEC_TYPE_SBC = 0; // 0x0
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class BluetoothCodecStatus implements android.os.Parcelable {
|
|
||||||
ctor public BluetoothCodecStatus(@Nullable android.bluetooth.BluetoothCodecConfig, @Nullable android.bluetooth.BluetoothCodecConfig[], @Nullable android.bluetooth.BluetoothCodecConfig[]);
|
|
||||||
method @Nullable public android.bluetooth.BluetoothCodecConfig getCodecConfig();
|
|
||||||
method @Nullable public android.bluetooth.BluetoothCodecConfig[] getCodecsLocalCapabilities();
|
|
||||||
method @Nullable public android.bluetooth.BluetoothCodecConfig[] getCodecsSelectableCapabilities();
|
|
||||||
field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecStatus> CREATOR;
|
|
||||||
field public static final String EXTRA_CODEC_STATUS = "android.bluetooth.extra.CODEC_STATUS";
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class BluetoothDevice implements android.os.Parcelable {
|
public final class BluetoothDevice implements android.os.Parcelable {
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelPairing();
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getBatteryLevel();
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMessageAccessPermission();
|
|
||||||
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int);
|
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getPhonebookAccessPermission();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getSimAccessPermission();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getSimAccessPermission();
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isBondingInitiatedLocally();
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeBond();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeBond();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setAlias(@NonNull String);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMessageAccessPermission(int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMessageAccessPermission(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@NonNull String);
|
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSimAccessPermission(int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSimAccessPermission(int);
|
||||||
field public static final int ACCESS_ALLOWED = 1; // 0x1
|
field public static final int ACCESS_ALLOWED = 1; // 0x1
|
||||||
@@ -1438,17 +1372,15 @@ package android.bluetooth {
|
|||||||
public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
|
public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean connect(android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean connect(android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnect(android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnect(android.bluetooth.BluetoothDevice);
|
||||||
method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothDevice getActiveDevice();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
|
||||||
method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPriority(android.bluetooth.BluetoothDevice, int);
|
method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPriority(android.bluetooth.BluetoothDevice, int);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {
|
public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.List<android.bluetooth.BluetoothDevice> getActiveDevices();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public long getHiSyncId(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long getHiSyncId(@Nullable android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
|
public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
|
||||||
@@ -1457,9 +1389,9 @@ package android.bluetooth {
|
|||||||
|
|
||||||
public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {
|
public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
|
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED";
|
field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1467,14 +1399,14 @@ package android.bluetooth {
|
|||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void close();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void close();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void finalize();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void finalize();
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
|
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED";
|
field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED";
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class BluetoothPan implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
|
public final class BluetoothPan implements android.bluetooth.BluetoothProfile {
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
|
method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isTetheringOn();
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isTetheringOn();
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setBluetoothTethering(boolean);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setBluetoothTethering(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
@@ -1488,7 +1420,7 @@ package android.bluetooth {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class BluetoothPbap implements android.bluetooth.BluetoothProfile {
|
public class BluetoothPbap implements android.bluetooth.BluetoothProfile {
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
|
||||||
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
|
||||||
field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED";
|
field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -433,7 +433,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* is active
|
* is active
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@Nullable
|
@Nullable
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public BluetoothDevice getActiveDevice() {
|
public BluetoothDevice getActiveDevice() {
|
||||||
@@ -462,7 +462,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -481,7 +481,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
@@ -517,7 +517,18 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
try {
|
||||||
|
final IBluetoothA2dp service = getService();
|
||||||
|
if (service != null && isEnabled()
|
||||||
|
&& isValidDevice(device)) {
|
||||||
|
return BluetoothAdapter.connectionPolicyToPriority(service.getPriority(device));
|
||||||
|
}
|
||||||
|
if (service == null) Log.w(TAG, "Proxy not attached to service");
|
||||||
|
return BluetoothProfile.PRIORITY_OFF;
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
|
||||||
|
return BluetoothProfile.PRIORITY_OFF;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -532,7 +543,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
try {
|
try {
|
||||||
@@ -640,7 +651,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* @return the current codec status
|
* @return the current codec status
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@Nullable
|
@Nullable
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public BluetoothCodecStatus getCodecStatus(@NonNull BluetoothDevice device) {
|
public BluetoothCodecStatus getCodecStatus(@NonNull BluetoothDevice device) {
|
||||||
@@ -669,8 +680,8 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* @param codecConfig the codec configuration preference
|
* @param codecConfig the codec configuration preference
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public void setCodecConfigPreference(@NonNull BluetoothDevice device,
|
public void setCodecConfigPreference(@NonNull BluetoothDevice device,
|
||||||
@NonNull BluetoothCodecConfig codecConfig) {
|
@NonNull BluetoothCodecConfig codecConfig) {
|
||||||
if (DBG) Log.d(TAG, "setCodecConfigPreference(" + device + ")");
|
if (DBG) Log.d(TAG, "setCodecConfigPreference(" + device + ")");
|
||||||
@@ -699,8 +710,8 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* active A2DP Bluetooth device.
|
* active A2DP Bluetooth device.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public void enableOptionalCodecs(@NonNull BluetoothDevice device) {
|
public void enableOptionalCodecs(@NonNull BluetoothDevice device) {
|
||||||
if (DBG) Log.d(TAG, "enableOptionalCodecs(" + device + ")");
|
if (DBG) Log.d(TAG, "enableOptionalCodecs(" + device + ")");
|
||||||
verifyDeviceNotNull(device, "enableOptionalCodecs");
|
verifyDeviceNotNull(device, "enableOptionalCodecs");
|
||||||
@@ -714,8 +725,8 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* active A2DP Bluetooth device.
|
* active A2DP Bluetooth device.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public void disableOptionalCodecs(@NonNull BluetoothDevice device) {
|
public void disableOptionalCodecs(@NonNull BluetoothDevice device) {
|
||||||
if (DBG) Log.d(TAG, "disableOptionalCodecs(" + device + ")");
|
if (DBG) Log.d(TAG, "disableOptionalCodecs(" + device + ")");
|
||||||
verifyDeviceNotNull(device, "disableOptionalCodecs");
|
verifyDeviceNotNull(device, "disableOptionalCodecs");
|
||||||
@@ -755,7 +766,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* OPTIONAL_CODECS_SUPPORTED.
|
* OPTIONAL_CODECS_SUPPORTED.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
||||||
@OptionalCodecsSupportStatus
|
@OptionalCodecsSupportStatus
|
||||||
public int isOptionalCodecsSupported(@NonNull BluetoothDevice device) {
|
public int isOptionalCodecsSupported(@NonNull BluetoothDevice device) {
|
||||||
@@ -781,7 +792,7 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* OPTIONAL_CODECS_PREF_DISABLED.
|
* OPTIONAL_CODECS_PREF_DISABLED.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
||||||
@OptionalCodecsPreferenceStatus
|
@OptionalCodecsPreferenceStatus
|
||||||
public int isOptionalCodecsEnabled(@NonNull BluetoothDevice device) {
|
public int isOptionalCodecsEnabled(@NonNull BluetoothDevice device) {
|
||||||
@@ -808,8 +819,8 @@ public final class BluetoothA2dp implements BluetoothProfile {
|
|||||||
* OPTIONAL_CODECS_PREF_DISABLED.
|
* OPTIONAL_CODECS_PREF_DISABLED.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
||||||
public void setOptionalCodecsEnabled(@NonNull BluetoothDevice device,
|
public void setOptionalCodecsEnabled(@NonNull BluetoothDevice device,
|
||||||
@OptionalCodecsPreferenceStatus int value) {
|
@OptionalCodecsPreferenceStatus int value) {
|
||||||
verifyDeviceNotNull(device, "setOptionalCodecsEnabled");
|
verifyDeviceNotNull(device, "setOptionalCodecsEnabled");
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
package android.bluetooth;
|
package android.bluetooth;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
@@ -120,7 +120,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
|
|||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean connect(BluetoothDevice device) {
|
public boolean connect(BluetoothDevice device) {
|
||||||
if (DBG) log("connect(" + device + ")");
|
if (DBG) log("connect(" + device + ")");
|
||||||
final IBluetoothA2dpSink service = getService();
|
final IBluetoothA2dpSink service = getService();
|
||||||
@@ -277,7 +277,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -297,7 +297,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(@Nullable BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
final IBluetoothA2dpSink service = getService();
|
final IBluetoothA2dpSink service = getService();
|
||||||
@@ -327,7 +327,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -346,7 +346,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(@Nullable BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothA2dpSink service = getService();
|
final IBluetoothA2dpSink service = getService();
|
||||||
if (service != null && isEnabled() && isValidDevice(device)) {
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
@@ -371,7 +371,7 @@ public final class BluetoothA2dpSink implements BluetoothProfile {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean isAudioPlaying(@Nullable BluetoothDevice device) {
|
public boolean isAudioPlaying(@NonNull BluetoothDevice device) {
|
||||||
final IBluetoothA2dpSink service = getService();
|
final IBluetoothA2dpSink service = getService();
|
||||||
if (service != null && isEnabled() && isValidDevice(device)) {
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1214,7 +1214,7 @@ public final class BluetoothAdapter {
|
|||||||
* @return true to indicate that the config file was successfully cleared
|
* @return true to indicate that the config file was successfully cleared
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean factoryReset() {
|
public boolean factoryReset() {
|
||||||
try {
|
try {
|
||||||
@@ -1506,8 +1506,9 @@ public final class BluetoothAdapter {
|
|||||||
* @return true if the scan mode was set, false otherwise
|
* @return true if the scan mode was set, false otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage(publicAlternatives = "Use {@link #ACTION_REQUEST_DISCOVERABLE}, which "
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
+ "shows UI that confirms the user wants to go into discoverable mode.")
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public boolean setScanMode(@ScanMode int mode, long durationMillis) {
|
public boolean setScanMode(@ScanMode int mode, long durationMillis) {
|
||||||
if (getState() != STATE_ON) {
|
if (getState() != STATE_ON) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1555,8 +1556,8 @@ public final class BluetoothAdapter {
|
|||||||
* @return true if the scan mode was set, false otherwise
|
* @return true if the scan mode was set, false otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public boolean setScanMode(@ScanMode int mode) {
|
public boolean setScanMode(@ScanMode int mode) {
|
||||||
if (getState() != STATE_ON) {
|
if (getState() != STATE_ON) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1620,7 +1621,7 @@ public final class BluetoothAdapter {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public long getDiscoveryEndMillis() {
|
public long getDiscoveryEndMillis() {
|
||||||
try {
|
try {
|
||||||
mServiceLock.readLock().lock();
|
mServiceLock.readLock().lock();
|
||||||
@@ -1872,7 +1873,6 @@ public final class BluetoothAdapter {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean connectAllEnabledProfiles(@NonNull BluetoothDevice device) {
|
public boolean connectAllEnabledProfiles(@NonNull BluetoothDevice device) {
|
||||||
try {
|
try {
|
||||||
@@ -1901,7 +1901,6 @@ public final class BluetoothAdapter {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean disconnectAllEnabledProfiles(@NonNull BluetoothDevice device) {
|
public boolean disconnectAllEnabledProfiles(@NonNull BluetoothDevice device) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ package android.bluetooth;
|
|||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.SystemApi;
|
|
||||||
import android.compat.annotation.UnsupportedAppUsage;
|
import android.compat.annotation.UnsupportedAppUsage;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
@@ -34,7 +33,6 @@ import java.util.Objects;
|
|||||||
*
|
*
|
||||||
* {@hide}
|
* {@hide}
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
|
||||||
public final class BluetoothCodecConfig implements Parcelable {
|
public final class BluetoothCodecConfig implements Parcelable {
|
||||||
// Add an entry for each source codec here.
|
// Add an entry for each source codec here.
|
||||||
// NOTE: The values should be same as those listed in the following file:
|
// NOTE: The values should be same as those listed in the following file:
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package android.bluetooth;
|
package android.bluetooth;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
@@ -32,7 +31,6 @@ import java.util.Objects;
|
|||||||
*
|
*
|
||||||
* {@hide}
|
* {@hide}
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
|
||||||
public final class BluetoothCodecStatus implements Parcelable {
|
public final class BluetoothCodecStatus implements Parcelable {
|
||||||
/**
|
/**
|
||||||
* Extra for the codec configuration intents of the individual profiles.
|
* Extra for the codec configuration intents of the individual profiles.
|
||||||
|
|||||||
@@ -35,8 +35,6 @@ import android.os.Process;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -1103,8 +1101,8 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* @return true on success, false on error
|
* @return true on success, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public boolean setAlias(@NonNull String alias) {
|
public boolean setAlias(@NonNull String alias) {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -1145,8 +1143,8 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* not have any battery reporting service, or return value is invalid
|
* not have any battery reporting service, or return value is invalid
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public int getBatteryLevel() {
|
public int getBatteryLevel() {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -1236,8 +1234,8 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public boolean isBondingInitiatedLocally() {
|
public boolean isBondingInitiatedLocally() {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -1531,7 +1529,7 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* @return true pin has been set false for error
|
* @return true pin has been set false for error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
||||||
public boolean setPin(@NonNull String pin) {
|
public boolean setPin(@NonNull String pin) {
|
||||||
byte[] pinBytes = convertPinToBytes(pin);
|
byte[] pinBytes = convertPinToBytes(pin);
|
||||||
@@ -1568,8 +1566,8 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
||||||
public boolean cancelPairing() {
|
public boolean cancelPairing() {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -1600,8 +1598,8 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}.
|
* #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public @AccessPermission int getPhonebookAccessPermission() {
|
public @AccessPermission int getPhonebookAccessPermission() {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -1708,8 +1706,8 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* @return Whether the message access is allowed to this device.
|
* @return Whether the message access is allowed to this device.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public @AccessPermission int getMessageAccessPermission() {
|
public @AccessPermission int getMessageAccessPermission() {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -1758,7 +1756,7 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public @AccessPermission int getSimAccessPermission() {
|
public @AccessPermission int getSimAccessPermission() {
|
||||||
final IBluetooth service = sService;
|
final IBluetooth service = sService;
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -2013,7 +2011,7 @@ public final class BluetoothDevice implements Parcelable {
|
|||||||
* @return the pin code as a UTF-8 byte array, or null if it is an invalid Bluetooth pin.
|
* @return the pin code as a UTF-8 byte array, or null if it is an invalid Bluetooth pin.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@UnsupportedAppUsage
|
||||||
public static byte[] convertPinToBytes(String pin) {
|
public static byte[] convertPinToBytes(String pin) {
|
||||||
if (pin == null) {
|
if (pin == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -572,7 +572,22 @@ public final class BluetoothHeadset implements BluetoothProfile {
|
|||||||
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
final IBluetoothHeadset service = mService;
|
||||||
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
|
if (priority != BluetoothProfile.PRIORITY_OFF
|
||||||
|
&& priority != BluetoothProfile.PRIORITY_ON) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return service.setPriority(
|
||||||
|
device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, Log.getStackTraceString(new Throwable()));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (service == null) Log.w(TAG, "Proxy not attached to service");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -588,7 +603,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
@@ -624,7 +639,17 @@ public final class BluetoothHeadset implements BluetoothProfile {
|
|||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
final IBluetoothHeadset service = mService;
|
||||||
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
|
try {
|
||||||
|
return BluetoothAdapter.connectionPolicyToPriority(service.getPriority(device));
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, Log.getStackTraceString(new Throwable()));
|
||||||
|
return BluetoothProfile.PRIORITY_OFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (service == null) Log.w(TAG, "Proxy not attached to service");
|
||||||
|
return BluetoothProfile.PRIORITY_OFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -639,7 +664,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothHeadset service = mService;
|
final IBluetoothHeadset service = mService;
|
||||||
@@ -1126,16 +1151,13 @@ public final class BluetoothHeadset implements BluetoothProfile {
|
|||||||
/**
|
/**
|
||||||
* Get the connected device that is active.
|
* Get the connected device that is active.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @return the connected device that is active or null if no device
|
* @return the connected device that is active or null if no device
|
||||||
* is active.
|
* is active.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@Nullable
|
@Nullable
|
||||||
@RequiresPermission(android.Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public BluetoothDevice getActiveDevice() {
|
public BluetoothDevice getActiveDevice() {
|
||||||
if (VDBG) {
|
if (VDBG) {
|
||||||
Log.d(TAG, "getActiveDevice");
|
Log.d(TAG, "getActiveDevice");
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.bluetooth;
|
package android.bluetooth;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.compat.annotation.UnsupportedAppUsage;
|
import android.compat.annotation.UnsupportedAppUsage;
|
||||||
@@ -442,6 +443,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
|
|||||||
* @param device a remote device we want connect to
|
* @param device a remote device we want connect to
|
||||||
* @return <code>true</code> if command has been issued successfully; <code>false</code>
|
* @return <code>true</code> if command has been issued successfully; <code>false</code>
|
||||||
* otherwise; upon completion HFP sends {@link #ACTION_CONNECTION_STATE_CHANGED} intent.
|
* otherwise; upon completion HFP sends {@link #ACTION_CONNECTION_STATE_CHANGED} intent.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public boolean connect(BluetoothDevice device) {
|
public boolean connect(BluetoothDevice device) {
|
||||||
@@ -466,6 +469,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
|
|||||||
* @param device a remote device we want disconnect
|
* @param device a remote device we want disconnect
|
||||||
* @return <code>true</code> if command has been issued successfully; <code>false</code>
|
* @return <code>true</code> if command has been issued successfully; <code>false</code>
|
||||||
* otherwise; upon completion HFP sends {@link #ACTION_CONNECTION_STATE_CHANGED} intent.
|
* otherwise; upon completion HFP sends {@link #ACTION_CONNECTION_STATE_CHANGED} intent.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public boolean disconnect(BluetoothDevice device) {
|
public boolean disconnect(BluetoothDevice device) {
|
||||||
@@ -564,7 +569,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -583,8 +588,8 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
final IBluetoothHeadsetClient service =
|
final IBluetoothHeadsetClient service =
|
||||||
@@ -634,7 +639,7 @@ public final class BluetoothHeadsetClient implements BluetoothProfile {
|
|||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothHeadsetClient service =
|
final IBluetoothHeadsetClient service =
|
||||||
getService();
|
getService();
|
||||||
|
|||||||
@@ -162,13 +162,11 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* the state. Users can get the connection state of the profile
|
* the state. Users can get the connection state of the profile
|
||||||
* from this intent.
|
* from this intent.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean connect(BluetoothDevice device) {
|
public boolean connect(BluetoothDevice device) {
|
||||||
if (DBG) log("connect(" + device + ")");
|
if (DBG) log("connect(" + device + ")");
|
||||||
final IBluetoothHearingAid service = getService();
|
final IBluetoothHearingAid service = getService();
|
||||||
@@ -202,13 +200,11 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* {@link #STATE_DISCONNECTING} can be used to distinguish between the
|
* {@link #STATE_DISCONNECTING} can be used to distinguish between the
|
||||||
* two scenarios.
|
* two scenarios.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean disconnect(BluetoothDevice device) {
|
public boolean disconnect(BluetoothDevice device) {
|
||||||
if (DBG) log("disconnect(" + device + ")");
|
if (DBG) log("disconnect(" + device + ")");
|
||||||
final IBluetoothHearingAid service = getService();
|
final IBluetoothHearingAid service = getService();
|
||||||
@@ -327,15 +323,12 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
/**
|
/**
|
||||||
* Get the connected physical Hearing Aid devices that are active
|
* Get the connected physical Hearing Aid devices that are active
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @return the list of active devices. The first element is the left active
|
* @return the list of active devices. The first element is the left active
|
||||||
* device; the second element is the right active device. If either or both side
|
* device; the second element is the right active device. If either or both side
|
||||||
* is not active, it will be null on that position. Returns empty list on error.
|
* is not active, it will be null on that position. Returns empty list on error.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
||||||
public @NonNull List<BluetoothDevice> getActiveDevices() {
|
public @NonNull List<BluetoothDevice> getActiveDevices() {
|
||||||
if (VDBG) log("getActiveDevices()");
|
if (VDBG) log("getActiveDevices()");
|
||||||
@@ -363,7 +356,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -382,7 +375,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
@@ -414,7 +407,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -432,7 +425,7 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothHearingAid service = getService();
|
final IBluetoothHearingAid service = getService();
|
||||||
@@ -506,8 +499,8 @@ public final class BluetoothHearingAid implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public long getHiSyncId(@Nullable BluetoothDevice device) {
|
public long getHiSyncId(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) {
|
if (VDBG) {
|
||||||
log("getHiSyncId(" + device + ")");
|
log("getHiSyncId(" + device + ")");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -263,13 +263,11 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
* the state. Users can get the connection state of the profile
|
* the state. Users can get the connection state of the profile
|
||||||
* from this intent.
|
* from this intent.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean connect(BluetoothDevice device) {
|
public boolean connect(BluetoothDevice device) {
|
||||||
if (DBG) log("connect(" + device + ")");
|
if (DBG) log("connect(" + device + ")");
|
||||||
final IBluetoothHidHost service = getService();
|
final IBluetoothHidHost service = getService();
|
||||||
@@ -303,13 +301,11 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
* {@link #STATE_DISCONNECTING} can be used to distinguish between the
|
* {@link #STATE_DISCONNECTING} can be used to distinguish between the
|
||||||
* two scenarios.
|
* two scenarios.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean disconnect(BluetoothDevice device) {
|
public boolean disconnect(BluetoothDevice device) {
|
||||||
if (DBG) log("disconnect(" + device + ")");
|
if (DBG) log("disconnect(" + device + ")");
|
||||||
final IBluetoothHidHost service = getService();
|
final IBluetoothHidHost service = getService();
|
||||||
@@ -327,7 +323,10 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
@Override
|
@Override
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @NonNull List<BluetoothDevice> getConnectedDevices() {
|
public @NonNull List<BluetoothDevice> getConnectedDevices() {
|
||||||
@@ -368,7 +367,10 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
@Override
|
@Override
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getConnectionState(@NonNull BluetoothDevice device) {
|
public int getConnectionState(@NonNull BluetoothDevice device) {
|
||||||
@@ -400,7 +402,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -419,7 +421,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
@@ -453,7 +455,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -471,7 +473,7 @@ public final class BluetoothHidHost implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
if (device == null) {
|
if (device == null) {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ package android.bluetooth;
|
|||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
@@ -328,7 +327,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -347,8 +346,8 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(@Nullable BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
final IBluetoothMap service = getService();
|
final IBluetoothMap service = getService();
|
||||||
@@ -378,7 +377,7 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -396,8 +395,8 @@ public final class BluetoothMap implements BluetoothProfile, AutoCloseable {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(@Nullable BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothMap service = getService();
|
final IBluetoothMap service = getService();
|
||||||
if (service != null && isEnabled() && isValidDevice(device)) {
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.bluetooth;
|
package android.bluetooth;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
@@ -140,7 +141,10 @@ public final class BluetoothMapClient implements BluetoothProfile {
|
|||||||
/**
|
/**
|
||||||
* Initiate connection. Initiation of outgoing connections is not
|
* Initiate connection. Initiation of outgoing connections is not
|
||||||
* supported for MAP server.
|
* supported for MAP server.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean connect(BluetoothDevice device) {
|
public boolean connect(BluetoothDevice device) {
|
||||||
if (DBG) Log.d(TAG, "connect(" + device + ")" + "for MAPS MCE");
|
if (DBG) Log.d(TAG, "connect(" + device + ")" + "for MAPS MCE");
|
||||||
final IBluetoothMapClient service = getService();
|
final IBluetoothMapClient service = getService();
|
||||||
@@ -162,7 +166,10 @@ public final class BluetoothMapClient implements BluetoothProfile {
|
|||||||
*
|
*
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on error, true otherwise
|
* @return false on error, true otherwise
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean disconnect(BluetoothDevice device) {
|
public boolean disconnect(BluetoothDevice device) {
|
||||||
if (DBG) Log.d(TAG, "disconnect(" + device + ")");
|
if (DBG) Log.d(TAG, "disconnect(" + device + ")");
|
||||||
final IBluetoothMapClient service = getService();
|
final IBluetoothMapClient service = getService();
|
||||||
@@ -251,7 +258,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) Log.d(TAG, "setPriority(" + device + ", " + priority + ")");
|
if (DBG) Log.d(TAG, "setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -270,8 +277,8 @@ public final class BluetoothMapClient implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) Log.d(TAG, "setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) Log.d(TAG, "setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
final IBluetoothMapClient service = getService();
|
final IBluetoothMapClient service = getService();
|
||||||
@@ -301,7 +308,7 @@ public final class BluetoothMapClient implements BluetoothProfile {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) Log.d(TAG, "getPriority(" + device + ")");
|
if (VDBG) Log.d(TAG, "getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -319,8 +326,8 @@ public final class BluetoothMapClient implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) Log.d(TAG, "getConnectionPolicy(" + device + ")");
|
if (VDBG) Log.d(TAG, "getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothMapClient service = getService();
|
final IBluetoothMapClient service = getService();
|
||||||
if (service != null && isEnabled() && isValidDevice(device)) {
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package android.bluetooth;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SdkConstant;
|
import android.annotation.SdkConstant;
|
||||||
import android.annotation.SdkConstant.SdkConstantType;
|
import android.annotation.SdkConstant.SdkConstantType;
|
||||||
@@ -30,7 +29,6 @@ import android.content.Context;
|
|||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.CloseGuard;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -51,11 +49,10 @@ import java.util.List;
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
|
public final class BluetoothPan implements BluetoothProfile {
|
||||||
private static final String TAG = "BluetoothPan";
|
private static final String TAG = "BluetoothPan";
|
||||||
private static final boolean DBG = true;
|
private static final boolean DBG = true;
|
||||||
private static final boolean VDBG = false;
|
private static final boolean VDBG = false;
|
||||||
private CloseGuard mCloseGuard;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Intent used to broadcast the change in connection state of the Pan
|
* Intent used to broadcast the change in connection state of the Pan
|
||||||
@@ -168,16 +165,13 @@ public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
|
|||||||
mAdapter = BluetoothAdapter.getDefaultAdapter();
|
mAdapter = BluetoothAdapter.getDefaultAdapter();
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mProfileConnector.connect(context, listener);
|
mProfileConnector.connect(context, listener);
|
||||||
mCloseGuard = new CloseGuard();
|
|
||||||
mCloseGuard.open("close");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Closes the connection to the service and unregisters callbacks
|
* Closes the connection to the service and unregisters callbacks
|
||||||
*
|
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
public void close() {
|
@UnsupportedAppUsage
|
||||||
|
void close() {
|
||||||
if (VDBG) log("close()");
|
if (VDBG) log("close()");
|
||||||
mProfileConnector.disconnect();
|
mProfileConnector.disconnect();
|
||||||
}
|
}
|
||||||
@@ -188,9 +182,6 @@ public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
|
|||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
protected void finalize() {
|
protected void finalize() {
|
||||||
if (mCloseGuard != null) {
|
|
||||||
mCloseGuard.warnIfOpen();
|
|
||||||
}
|
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,9 +195,6 @@ public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
|
|||||||
* the state. Users can get the connection state of the profile
|
* the state. Users can get the connection state of the profile
|
||||||
* from this intent.
|
* from this intent.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
@@ -245,9 +233,6 @@ public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
|
|||||||
* {@link #STATE_DISCONNECTING} can be used to distinguish between the
|
* {@link #STATE_DISCONNECTING} can be used to distinguish between the
|
||||||
* two scenarios.
|
* two scenarios.
|
||||||
*
|
*
|
||||||
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
|
|
||||||
* permission.
|
|
||||||
*
|
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on immediate error, true otherwise
|
* @return false on immediate error, true otherwise
|
||||||
* @hide
|
* @hide
|
||||||
@@ -353,7 +338,7 @@ public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
|
|||||||
@SystemApi
|
@SystemApi
|
||||||
@Override
|
@Override
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getConnectionState(@Nullable BluetoothDevice device) {
|
public int getConnectionState(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) log("getState(" + device + ")");
|
if (VDBG) log("getState(" + device + ")");
|
||||||
final IBluetoothPan service = getService();
|
final IBluetoothPan service = getService();
|
||||||
if (service != null && isEnabled() && isValidDevice(device)) {
|
if (service != null && isEnabled() && isValidDevice(device)) {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ package android.bluetooth;
|
|||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SdkConstant;
|
import android.annotation.SdkConstant;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
@@ -239,7 +238,7 @@ public class BluetoothPbap implements BluetoothProfile {
|
|||||||
@SystemApi
|
@SystemApi
|
||||||
@Override
|
@Override
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @BtProfileState int getConnectionState(@Nullable BluetoothDevice device) {
|
public @BtProfileState int getConnectionState(@NonNull BluetoothDevice device) {
|
||||||
log("getConnectionState: device=" + device);
|
log("getConnectionState: device=" + device);
|
||||||
try {
|
try {
|
||||||
final IBluetoothPbap service = mService;
|
final IBluetoothPbap service = mService;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.bluetooth;
|
package android.bluetooth;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.annotation.RequiresPermission;
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -101,7 +102,10 @@ public final class BluetoothPbapClient implements BluetoothProfile {
|
|||||||
* @param device a remote device we want connect to
|
* @param device a remote device we want connect to
|
||||||
* @return <code>true</code> if command has been issued successfully; <code>false</code>
|
* @return <code>true</code> if command has been issued successfully; <code>false</code>
|
||||||
* otherwise;
|
* otherwise;
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean connect(BluetoothDevice device) {
|
public boolean connect(BluetoothDevice device) {
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
log("connect(" + device + ") for PBAP Client.");
|
log("connect(" + device + ") for PBAP Client.");
|
||||||
@@ -126,7 +130,10 @@ public final class BluetoothPbapClient implements BluetoothProfile {
|
|||||||
*
|
*
|
||||||
* @param device Remote Bluetooth Device
|
* @param device Remote Bluetooth Device
|
||||||
* @return false on error, true otherwise
|
* @return false on error, true otherwise
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean disconnect(BluetoothDevice device) {
|
public boolean disconnect(BluetoothDevice device) {
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
log("disconnect(" + device + ")" + new Exception());
|
log("disconnect(" + device + ")" + new Exception());
|
||||||
@@ -251,7 +258,7 @@ public final class BluetoothPbapClient implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -270,8 +277,8 @@ public final class BluetoothPbapClient implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(BluetoothDevice device,
|
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
@@ -305,7 +312,7 @@ public final class BluetoothPbapClient implements BluetoothProfile {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -323,8 +330,8 @@ public final class BluetoothPbapClient implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
|
||||||
if (VDBG) {
|
if (VDBG) {
|
||||||
log("getConnectionPolicy(" + device + ")");
|
log("getConnectionPolicy(" + device + ")");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ public final class BluetoothSap implements BluetoothProfile {
|
|||||||
* @return true if priority is set, false on error
|
* @return true if priority is set, false on error
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setPriority(BluetoothDevice device, int priority) {
|
public boolean setPriority(BluetoothDevice device, int priority) {
|
||||||
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
if (DBG) log("setPriority(" + device + ", " + priority + ")");
|
||||||
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
|
||||||
@@ -329,7 +329,7 @@ public final class BluetoothSap implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public boolean setConnectionPolicy(BluetoothDevice device,
|
public boolean setConnectionPolicy(BluetoothDevice device,
|
||||||
@ConnectionPolicy int connectionPolicy) {
|
@ConnectionPolicy int connectionPolicy) {
|
||||||
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
|
||||||
@@ -360,7 +360,7 @@ public final class BluetoothSap implements BluetoothProfile {
|
|||||||
* @return priority of the device
|
* @return priority of the device
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public int getPriority(BluetoothDevice device) {
|
public int getPriority(BluetoothDevice device) {
|
||||||
if (VDBG) log("getPriority(" + device + ")");
|
if (VDBG) log("getPriority(" + device + ")");
|
||||||
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
|
||||||
@@ -378,7 +378,7 @@ public final class BluetoothSap implements BluetoothProfile {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(Manifest.permission.BLUETOOTH)
|
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||||
public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
|
public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
|
||||||
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
if (VDBG) log("getConnectionPolicy(" + device + ")");
|
||||||
final IBluetoothSap service = getService();
|
final IBluetoothSap service = getService();
|
||||||
|
|||||||
Reference in New Issue
Block a user