xref: /aosp_15_r20/prebuilts/sdk/32/system/api/framework-bluetooth.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1*344a7f5eSAndroid Build Coastguard Worker// Signature format: 2.0
2*344a7f5eSAndroid Build Coastguard Workerpackage android.bluetooth {
3*344a7f5eSAndroid Build Coastguard Worker
4*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
5*344a7f5eSAndroid Build Coastguard Worker    method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public android.bluetooth.BufferConstraints getBufferConstraints();
6*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
7*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getDynamicBufferSupport();
8*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setBufferLengthMillis(int, int);
9*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
10*344a7f5eSAndroid Build Coastguard Worker    field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_OFFLOAD = 1; // 0x1
11*344a7f5eSAndroid Build Coastguard Worker    field public static final int DYNAMIC_BUFFER_SUPPORT_A2DP_SOFTWARE_ENCODING = 2; // 0x2
12*344a7f5eSAndroid Build Coastguard Worker    field public static final int DYNAMIC_BUFFER_SUPPORT_NONE = 0; // 0x0
13*344a7f5eSAndroid Build Coastguard Worker    field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0
14*344a7f5eSAndroid Build Coastguard Worker    field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0
15*344a7f5eSAndroid Build Coastguard Worker    field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1
16*344a7f5eSAndroid Build Coastguard Worker    field public static final int OPTIONAL_CODECS_PREF_UNKNOWN = -1; // 0xffffffff
17*344a7f5eSAndroid Build Coastguard Worker    field public static final int OPTIONAL_CODECS_SUPPORTED = 1; // 0x1
18*344a7f5eSAndroid Build Coastguard Worker    field public static final int OPTIONAL_CODECS_SUPPORT_UNKNOWN = -1; // 0xffffffff
19*344a7f5eSAndroid Build Coastguard Worker  }
20*344a7f5eSAndroid Build Coastguard Worker
21*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile {
22*344a7f5eSAndroid Build Coastguard Worker    method public void finalize();
23*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
24*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isAudioPlaying(@NonNull android.bluetooth.BluetoothDevice);
25*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
26*344a7f5eSAndroid Build Coastguard Worker    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED";
27*344a7f5eSAndroid Build Coastguard Worker  }
28*344a7f5eSAndroid Build Coastguard Worker
29*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothAdapter {
30*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
31*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disableBLE();
32*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableBLE();
33*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean enableNoAutoConnect();
34*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public void generateLocalOobData(int, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OobDataCallback);
35*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getDiscoveryEndMillis();
36*344a7f5eSAndroid Build Coastguard Worker    method public boolean isBleScanAlwaysAvailable();
37*344a7f5eSAndroid Build Coastguard Worker    method public boolean isLeEnabled();
38*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean removeActiveDevice(int);
39*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
40*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int);
41*344a7f5eSAndroid Build Coastguard Worker    field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
42*344a7f5eSAndroid Build Coastguard Worker    field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
43*344a7f5eSAndroid Build Coastguard Worker    field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
44*344a7f5eSAndroid Build Coastguard Worker    field public static final int ACTIVE_DEVICE_AUDIO = 0; // 0x0
45*344a7f5eSAndroid Build Coastguard Worker    field public static final int ACTIVE_DEVICE_PHONE_CALL = 1; // 0x1
46*344a7f5eSAndroid Build Coastguard Worker  }
47*344a7f5eSAndroid Build Coastguard Worker
48*344a7f5eSAndroid Build Coastguard Worker  public static interface BluetoothAdapter.OnMetadataChangedListener {
49*344a7f5eSAndroid Build Coastguard Worker    method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]);
50*344a7f5eSAndroid Build Coastguard Worker  }
51*344a7f5eSAndroid Build Coastguard Worker
52*344a7f5eSAndroid Build Coastguard Worker  public static interface BluetoothAdapter.OobDataCallback {
53*344a7f5eSAndroid Build Coastguard Worker    method public void onError(int);
54*344a7f5eSAndroid Build Coastguard Worker    method public void onOobData(int, @NonNull android.bluetooth.OobData);
55*344a7f5eSAndroid Build Coastguard Worker  }
56*344a7f5eSAndroid Build Coastguard Worker
57*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothDevice implements android.os.Parcelable {
58*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean canBondWithoutDialog();
59*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean cancelBondProcess();
60*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean createBondOutOfBand(int, @Nullable android.bluetooth.OobData, @Nullable android.bluetooth.OobData);
61*344a7f5eSAndroid Build Coastguard Worker    method @Nullable @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public byte[] getMetadata(int);
62*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getSimAccessPermission();
63*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isConnected();
64*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isEncrypted();
65*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean isInSilenceMode();
66*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean removeBond();
67*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMessageAccessPermission(int);
68*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setMetadata(int, @NonNull byte[]);
69*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setPhonebookAccessPermission(int);
70*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSilenceMode(boolean);
71*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setSimAccessPermission(int);
72*344a7f5eSAndroid Build Coastguard Worker    field public static final int ACCESS_ALLOWED = 1; // 0x1
73*344a7f5eSAndroid Build Coastguard Worker    field public static final int ACCESS_REJECTED = 2; // 0x2
74*344a7f5eSAndroid Build Coastguard Worker    field public static final int ACCESS_UNKNOWN = 0; // 0x0
75*344a7f5eSAndroid Build Coastguard Worker    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_SILENCE_MODE_CHANGED = "android.bluetooth.device.action.SILENCE_MODE_CHANGED";
76*344a7f5eSAndroid Build Coastguard Worker    field public static final String DEVICE_TYPE_DEFAULT = "Default";
77*344a7f5eSAndroid Build Coastguard Worker    field public static final String DEVICE_TYPE_UNTETHERED_HEADSET = "Untethered Headset";
78*344a7f5eSAndroid Build Coastguard Worker    field public static final String DEVICE_TYPE_WATCH = "Watch";
79*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_COMPANION_APP = 4; // 0x4
80*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_DEVICE_TYPE = 17; // 0x11
81*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_ENHANCED_SETTINGS_UI_URI = 16; // 0x10
82*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_HARDWARE_VERSION = 3; // 0x3
83*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_IS_UNTETHERED_HEADSET = 6; // 0x6
84*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MAIN_BATTERY = 18; // 0x12
85*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MAIN_CHARGING = 19; // 0x13
86*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MAIN_ICON = 5; // 0x5
87*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MAIN_LOW_BATTERY_THRESHOLD = 20; // 0x14
88*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MANUFACTURER_NAME = 0; // 0x0
89*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MAX_LENGTH = 2048; // 0x800
90*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_MODEL_NAME = 1; // 0x1
91*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_SOFTWARE_VERSION = 2; // 0x2
92*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_CASE_BATTERY = 12; // 0xc
93*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_CASE_CHARGING = 15; // 0xf
94*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_CASE_ICON = 9; // 0x9
95*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_CASE_LOW_BATTERY_THRESHOLD = 23; // 0x17
96*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_LEFT_BATTERY = 10; // 0xa
97*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_LEFT_CHARGING = 13; // 0xd
98*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_LEFT_ICON = 7; // 0x7
99*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_LEFT_LOW_BATTERY_THRESHOLD = 21; // 0x15
100*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_RIGHT_BATTERY = 11; // 0xb
101*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_RIGHT_CHARGING = 14; // 0xe
102*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_RIGHT_ICON = 8; // 0x8
103*344a7f5eSAndroid Build Coastguard Worker    field public static final int METADATA_UNTETHERED_RIGHT_LOW_BATTERY_THRESHOLD = 22; // 0x16
104*344a7f5eSAndroid Build Coastguard Worker  }
105*344a7f5eSAndroid Build Coastguard Worker
106*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
107*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean connect(android.bluetooth.BluetoothDevice);
108*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice);
109*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
110*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
111*344a7f5eSAndroid Build Coastguard Worker  }
112*344a7f5eSAndroid Build Coastguard Worker
113*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {
114*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
115*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public long getHiSyncId(@NonNull android.bluetooth.BluetoothDevice);
116*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
117*344a7f5eSAndroid Build Coastguard Worker  }
118*344a7f5eSAndroid Build Coastguard Worker
119*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
120*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
121*344a7f5eSAndroid Build Coastguard Worker  }
122*344a7f5eSAndroid Build Coastguard Worker
123*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {
124*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
125*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
126*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
127*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
128*344a7f5eSAndroid Build Coastguard Worker    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED";
129*344a7f5eSAndroid Build Coastguard Worker  }
130*344a7f5eSAndroid Build Coastguard Worker
131*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothMap implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
132*344a7f5eSAndroid Build Coastguard Worker    method public void close();
133*344a7f5eSAndroid Build Coastguard Worker    method protected void finalize();
134*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
135*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
136*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
137*344a7f5eSAndroid Build Coastguard Worker    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED";
138*344a7f5eSAndroid Build Coastguard Worker  }
139*344a7f5eSAndroid Build Coastguard Worker
140*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothMapClient implements android.bluetooth.BluetoothProfile {
141*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.SEND_SMS}) public boolean sendMessage(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.Collection<android.net.Uri>, @NonNull String, @Nullable android.app.PendingIntent, @Nullable android.app.PendingIntent);
142*344a7f5eSAndroid Build Coastguard Worker  }
143*344a7f5eSAndroid Build Coastguard Worker
144*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothPan implements android.bluetooth.BluetoothProfile {
145*344a7f5eSAndroid Build Coastguard Worker    method @NonNull @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
146*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
147*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean isTetheringOn();
148*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED, android.Manifest.permission.TETHER_PRIVILEGED}) public void setBluetoothTethering(boolean);
149*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
150*344a7f5eSAndroid Build Coastguard Worker    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED";
151*344a7f5eSAndroid Build Coastguard Worker    field public static final String ACTION_TETHERING_STATE_CHANGED = "android.bluetooth.action.TETHERING_STATE_CHANGED";
152*344a7f5eSAndroid Build Coastguard Worker    field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE";
153*344a7f5eSAndroid Build Coastguard Worker    field public static final String EXTRA_TETHERING_STATE = "android.bluetooth.extra.TETHERING_STATE";
154*344a7f5eSAndroid Build Coastguard Worker    field public static final int LOCAL_NAP_ROLE = 1; // 0x1
155*344a7f5eSAndroid Build Coastguard Worker    field public static final int LOCAL_PANU_ROLE = 2; // 0x2
156*344a7f5eSAndroid Build Coastguard Worker    field public static final int PAN_ROLE_NONE = 0; // 0x0
157*344a7f5eSAndroid Build Coastguard Worker    field public static final int REMOTE_NAP_ROLE = 1; // 0x1
158*344a7f5eSAndroid Build Coastguard Worker    field public static final int REMOTE_PANU_ROLE = 2; // 0x2
159*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_STATE_OFF = 1; // 0x1
160*344a7f5eSAndroid Build Coastguard Worker    field public static final int TETHERING_STATE_ON = 2; // 0x2
161*344a7f5eSAndroid Build Coastguard Worker  }
162*344a7f5eSAndroid Build Coastguard Worker
163*344a7f5eSAndroid Build Coastguard Worker  public class BluetoothPbap implements android.bluetooth.BluetoothProfile {
164*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
165*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
166*344a7f5eSAndroid Build Coastguard Worker    field @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED";
167*344a7f5eSAndroid Build Coastguard Worker  }
168*344a7f5eSAndroid Build Coastguard Worker
169*344a7f5eSAndroid Build Coastguard Worker  public interface BluetoothProfile {
170*344a7f5eSAndroid Build Coastguard Worker    field public static final int A2DP_SINK = 11; // 0xb
171*344a7f5eSAndroid Build Coastguard Worker    field public static final int AVRCP_CONTROLLER = 12; // 0xc
172*344a7f5eSAndroid Build Coastguard Worker    field public static final int CONNECTION_POLICY_ALLOWED = 100; // 0x64
173*344a7f5eSAndroid Build Coastguard Worker    field public static final int CONNECTION_POLICY_FORBIDDEN = 0; // 0x0
174*344a7f5eSAndroid Build Coastguard Worker    field public static final int CONNECTION_POLICY_UNKNOWN = -1; // 0xffffffff
175*344a7f5eSAndroid Build Coastguard Worker    field public static final int HEADSET_CLIENT = 16; // 0x10
176*344a7f5eSAndroid Build Coastguard Worker    field public static final int MAP_CLIENT = 18; // 0x12
177*344a7f5eSAndroid Build Coastguard Worker    field public static final int PAN = 5; // 0x5
178*344a7f5eSAndroid Build Coastguard Worker    field public static final int PBAP_CLIENT = 17; // 0x11
179*344a7f5eSAndroid Build Coastguard Worker    field @Deprecated public static final int PRIORITY_OFF = 0; // 0x0
180*344a7f5eSAndroid Build Coastguard Worker    field @Deprecated public static final int PRIORITY_ON = 100; // 0x64
181*344a7f5eSAndroid Build Coastguard Worker  }
182*344a7f5eSAndroid Build Coastguard Worker
183*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothStatusCodes {
184*344a7f5eSAndroid Build Coastguard Worker    field public static final int ERROR_ANOTHER_ACTIVE_OOB_REQUEST = 1000; // 0x3e8
185*344a7f5eSAndroid Build Coastguard Worker  }
186*344a7f5eSAndroid Build Coastguard Worker
187*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothUuid {
188*344a7f5eSAndroid Build Coastguard Worker    method public static boolean containsAnyUuid(@Nullable android.os.ParcelUuid[], @Nullable android.os.ParcelUuid[]);
189*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public static android.os.ParcelUuid parseUuidFrom(@Nullable byte[]);
190*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid A2DP_SINK;
191*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid A2DP_SOURCE;
192*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid ADV_AUDIO_DIST;
193*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid AVRCP_CONTROLLER;
194*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid AVRCP_TARGET;
195*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid BASE_UUID;
196*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid BNEP;
197*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid DIP;
198*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HEARING_AID;
199*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HFP;
200*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HFP_AG;
201*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HID;
202*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HOGP;
203*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HSP;
204*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid HSP_AG;
205*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid LE_AUDIO;
206*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid MAP;
207*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid MAS;
208*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid MNS;
209*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid NAP;
210*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid OBEX_OBJECT_PUSH;
211*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid PANU;
212*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid PBAP_PCE;
213*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid PBAP_PSE;
214*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid SAP;
215*344a7f5eSAndroid Build Coastguard Worker    field public static final int UUID_BYTES_128_BIT = 16; // 0x10
216*344a7f5eSAndroid Build Coastguard Worker    field public static final int UUID_BYTES_16_BIT = 2; // 0x2
217*344a7f5eSAndroid Build Coastguard Worker    field public static final int UUID_BYTES_32_BIT = 4; // 0x4
218*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.ParcelUuid VOLUME_CONTROL;
219*344a7f5eSAndroid Build Coastguard Worker  }
220*344a7f5eSAndroid Build Coastguard Worker
221*344a7f5eSAndroid Build Coastguard Worker  public final class BufferConstraint implements android.os.Parcelable {
222*344a7f5eSAndroid Build Coastguard Worker    ctor public BufferConstraint(int, int, int);
223*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
224*344a7f5eSAndroid Build Coastguard Worker    method public int getDefaultMillis();
225*344a7f5eSAndroid Build Coastguard Worker    method public int getMaxMillis();
226*344a7f5eSAndroid Build Coastguard Worker    method public int getMinMillis();
227*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
228*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraint> CREATOR;
229*344a7f5eSAndroid Build Coastguard Worker  }
230*344a7f5eSAndroid Build Coastguard Worker
231*344a7f5eSAndroid Build Coastguard Worker  public final class BufferConstraints implements android.os.Parcelable {
232*344a7f5eSAndroid Build Coastguard Worker    ctor public BufferConstraints(@NonNull java.util.List<android.bluetooth.BufferConstraint>);
233*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
234*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public android.bluetooth.BufferConstraint forCodec(int);
235*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(@NonNull android.os.Parcel, int);
236*344a7f5eSAndroid Build Coastguard Worker    field public static final int BUFFER_CODEC_MAX_NUM = 32; // 0x20
237*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BufferConstraints> CREATOR;
238*344a7f5eSAndroid Build Coastguard Worker  }
239*344a7f5eSAndroid Build Coastguard Worker
240*344a7f5eSAndroid Build Coastguard Worker  public final class OobData implements android.os.Parcelable {
241*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public byte[] getClassOfDevice();
242*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public byte[] getClassicLength();
243*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public byte[] getConfirmationHash();
244*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public byte[] getDeviceAddressWithType();
245*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public byte[] getDeviceName();
246*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public byte[] getLeAppearance();
247*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public int getLeDeviceRole();
248*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public int getLeFlags();
249*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public byte[] getLeTemporaryKey();
250*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public byte[] getRandomizerHash();
251*344a7f5eSAndroid Build Coastguard Worker    field public static final int CLASS_OF_DEVICE_OCTETS = 3; // 0x3
252*344a7f5eSAndroid Build Coastguard Worker    field public static final int CONFIRMATION_OCTETS = 16; // 0x10
253*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.OobData> CREATOR;
254*344a7f5eSAndroid Build Coastguard Worker    field public static final int DEVICE_ADDRESS_OCTETS = 7; // 0x7
255*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_APPEARANCE_OCTETS = 2; // 0x2
256*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_DEVICE_FLAG_OCTETS = 1; // 0x1
257*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_DEVICE_ROLE_BOTH_PREFER_CENTRAL = 3; // 0x3
258*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_DEVICE_ROLE_BOTH_PREFER_PERIPHERAL = 2; // 0x2
259*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_DEVICE_ROLE_CENTRAL_ONLY = 1; // 0x1
260*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_DEVICE_ROLE_OCTETS = 1; // 0x1
261*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_DEVICE_ROLE_PERIPHERAL_ONLY = 0; // 0x0
262*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_FLAG_BREDR_NOT_SUPPORTED = 2; // 0x2
263*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_FLAG_GENERAL_DISCOVERY_MODE = 1; // 0x1
264*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_FLAG_LIMITED_DISCOVERY_MODE = 0; // 0x0
265*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_FLAG_SIMULTANEOUS_CONTROLLER = 3; // 0x3
266*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_FLAG_SIMULTANEOUS_HOST = 4; // 0x4
267*344a7f5eSAndroid Build Coastguard Worker    field public static final int LE_TK_OCTETS = 16; // 0x10
268*344a7f5eSAndroid Build Coastguard Worker    field public static final int OOB_LENGTH_OCTETS = 2; // 0x2
269*344a7f5eSAndroid Build Coastguard Worker    field public static final int RANDOMIZER_OCTETS = 16; // 0x10
270*344a7f5eSAndroid Build Coastguard Worker  }
271*344a7f5eSAndroid Build Coastguard Worker
272*344a7f5eSAndroid Build Coastguard Worker  public static final class OobData.ClassicBuilder {
273*344a7f5eSAndroid Build Coastguard Worker    ctor public OobData.ClassicBuilder(@NonNull byte[], @NonNull byte[], @NonNull byte[]);
274*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData build();
275*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.ClassicBuilder setClassOfDevice(@NonNull byte[]);
276*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.ClassicBuilder setDeviceName(@NonNull byte[]);
277*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.ClassicBuilder setRandomizerHash(@NonNull byte[]);
278*344a7f5eSAndroid Build Coastguard Worker  }
279*344a7f5eSAndroid Build Coastguard Worker
280*344a7f5eSAndroid Build Coastguard Worker  public static final class OobData.LeBuilder {
281*344a7f5eSAndroid Build Coastguard Worker    ctor public OobData.LeBuilder(@NonNull byte[], @NonNull byte[], int);
282*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData build();
283*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.LeBuilder setDeviceName(@NonNull byte[]);
284*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.LeBuilder setLeFlags(int);
285*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.LeBuilder setLeTemporaryKey(@NonNull byte[]);
286*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.OobData.LeBuilder setRandomizerHash(@NonNull byte[]);
287*344a7f5eSAndroid Build Coastguard Worker  }
288*344a7f5eSAndroid Build Coastguard Worker
289*344a7f5eSAndroid Build Coastguard Worker}
290*344a7f5eSAndroid Build Coastguard Worker
291*344a7f5eSAndroid Build Coastguard Workerpackage android.bluetooth.le {
292*344a7f5eSAndroid Build Coastguard Worker
293*344a7f5eSAndroid Build Coastguard Worker  public final class BluetoothLeScanner {
294*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(android.os.WorkSource, android.bluetooth.le.ScanCallback);
295*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.UPDATE_DEVICE_STATS}) public void startScanFromSource(java.util.List<android.bluetooth.le.ScanFilter>, android.bluetooth.le.ScanSettings, android.os.WorkSource, android.bluetooth.le.ScanCallback);
296*344a7f5eSAndroid Build Coastguard Worker    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN) public void startTruncatedScan(java.util.List<android.bluetooth.le.TruncatedFilter>, android.bluetooth.le.ScanSettings, android.bluetooth.le.ScanCallback);
297*344a7f5eSAndroid Build Coastguard Worker  }
298*344a7f5eSAndroid Build Coastguard Worker
299*344a7f5eSAndroid Build Coastguard Worker  public final class ResultStorageDescriptor implements android.os.Parcelable {
300*344a7f5eSAndroid Build Coastguard Worker    ctor public ResultStorageDescriptor(int, int, int);
301*344a7f5eSAndroid Build Coastguard Worker    method public int describeContents();
302*344a7f5eSAndroid Build Coastguard Worker    method public int getLength();
303*344a7f5eSAndroid Build Coastguard Worker    method public int getOffset();
304*344a7f5eSAndroid Build Coastguard Worker    method public int getType();
305*344a7f5eSAndroid Build Coastguard Worker    method public void writeToParcel(android.os.Parcel, int);
306*344a7f5eSAndroid Build Coastguard Worker    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.le.ResultStorageDescriptor> CREATOR;
307*344a7f5eSAndroid Build Coastguard Worker  }
308*344a7f5eSAndroid Build Coastguard Worker
309*344a7f5eSAndroid Build Coastguard Worker  public final class ScanFilter implements android.os.Parcelable {
310*344a7f5eSAndroid Build Coastguard Worker    method public int getAddressType();
311*344a7f5eSAndroid Build Coastguard Worker    method @Nullable public byte[] getIrk();
312*344a7f5eSAndroid Build Coastguard Worker  }
313*344a7f5eSAndroid Build Coastguard Worker
314*344a7f5eSAndroid Build Coastguard Worker  public static final class ScanFilter.Builder {
315*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int);
316*344a7f5eSAndroid Build Coastguard Worker    method @NonNull public android.bluetooth.le.ScanFilter.Builder setDeviceAddress(@NonNull String, int, @NonNull byte[]);
317*344a7f5eSAndroid Build Coastguard Worker    field public static final int LEN_IRK_OCTETS = 16; // 0x10
318*344a7f5eSAndroid Build Coastguard Worker  }
319*344a7f5eSAndroid Build Coastguard Worker
320*344a7f5eSAndroid Build Coastguard Worker  public final class ScanSettings implements android.os.Parcelable {
321*344a7f5eSAndroid Build Coastguard Worker    field public static final int SCAN_MODE_AMBIENT_DISCOVERY = 3; // 0x3
322*344a7f5eSAndroid Build Coastguard Worker    field public static final int SCAN_RESULT_TYPE_ABBREVIATED = 1; // 0x1
323*344a7f5eSAndroid Build Coastguard Worker    field public static final int SCAN_RESULT_TYPE_FULL = 0; // 0x0
324*344a7f5eSAndroid Build Coastguard Worker  }
325*344a7f5eSAndroid Build Coastguard Worker
326*344a7f5eSAndroid Build Coastguard Worker  public static final class ScanSettings.Builder {
327*344a7f5eSAndroid Build Coastguard Worker    method public android.bluetooth.le.ScanSettings.Builder setScanResultType(int);
328*344a7f5eSAndroid Build Coastguard Worker  }
329*344a7f5eSAndroid Build Coastguard Worker
330*344a7f5eSAndroid Build Coastguard Worker  public final class TruncatedFilter {
331*344a7f5eSAndroid Build Coastguard Worker    ctor public TruncatedFilter(android.bluetooth.le.ScanFilter, java.util.List<android.bluetooth.le.ResultStorageDescriptor>);
332*344a7f5eSAndroid Build Coastguard Worker    method public android.bluetooth.le.ScanFilter getFilter();
333*344a7f5eSAndroid Build Coastguard Worker    method public java.util.List<android.bluetooth.le.ResultStorageDescriptor> getStorageDescriptors();
334*344a7f5eSAndroid Build Coastguard Worker  }
335*344a7f5eSAndroid Build Coastguard Worker
336*344a7f5eSAndroid Build Coastguard Worker}
337*344a7f5eSAndroid Build Coastguard Worker
338