Changing BluetoothHeadset APIs from @hide to @SystemApi

For isInbandringing API - it is used in the call journey and would
change the behavior(undeterministic) of the call if not used.

Stop/StartScoUsingVirtualVoiceCall is used in the BluetoothShim layer
specifically for testing and mocking in the Android Apps. Seems
reasonable to keep this as a SystemAPI given that it has no params and
unlikely to be changed.

Bug: 195160939
Tag: #feature
Test: Manual
Change-Id: I02b2e7e5e0be3b462f7c25b655e669e2c7fe47eb
This commit is contained in:
Roopa Sattiraju
2021-08-20 15:06:57 -07:00
parent b55a7938a6
commit ce1d2e1fb4
2 changed files with 9 additions and 6 deletions

View File

@@ -2017,7 +2017,10 @@ package android.bluetooth {
method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean connect(android.bluetooth.BluetoothDevice); method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean connect(android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice); method @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) public boolean disconnect(android.bluetooth.BluetoothDevice);
method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice); method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_PRIVILEGED}) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInbandRingingEnabled();
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); 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);
method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean startScoUsingVirtualVoiceCall();
method @RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean stopScoUsingVirtualVoiceCall();
} }
public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile { public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {

View File

@@ -16,17 +16,16 @@
package android.bluetooth; package android.bluetooth;
import android.Manifest;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; 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.SdkConstant.SdkConstantType; import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.bluetooth.annotations.RequiresBluetoothConnectPermission; import android.bluetooth.annotations.RequiresBluetoothConnectPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission; import android.bluetooth.annotations.RequiresLegacyBluetoothAdminPermission;
import android.bluetooth.annotations.RequiresLegacyBluetoothPermission; import android.bluetooth.annotations.RequiresLegacyBluetoothPermission;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage;
import android.content.Attributable; import android.content.Attributable;
import android.content.AttributionSource; import android.content.AttributionSource;
@@ -1105,13 +1104,13 @@ public final class BluetoothHeadset implements BluetoothProfile {
* - binder is dead or Bluetooth is disabled or other error * - binder is dead or Bluetooth is disabled or other error
* @hide * @hide
*/ */
@SystemApi
@RequiresLegacyBluetoothAdminPermission @RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothConnectPermission @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = { @RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.MODIFY_PHONE_STATE,
}) })
@UnsupportedAppUsage
public boolean startScoUsingVirtualVoiceCall() { public boolean startScoUsingVirtualVoiceCall() {
if (DBG) log("startScoUsingVirtualVoiceCall()"); if (DBG) log("startScoUsingVirtualVoiceCall()");
final IBluetoothHeadset service = mService; final IBluetoothHeadset service = mService;
@@ -1140,13 +1139,13 @@ public final class BluetoothHeadset implements BluetoothProfile {
* - binder is dead or Bluetooth is disabled or other error * - binder is dead or Bluetooth is disabled or other error
* @hide * @hide
*/ */
@SystemApi
@RequiresLegacyBluetoothAdminPermission @RequiresLegacyBluetoothAdminPermission
@RequiresBluetoothConnectPermission @RequiresBluetoothConnectPermission
@RequiresPermission(allOf = { @RequiresPermission(allOf = {
android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.MODIFY_PHONE_STATE,
}) })
@UnsupportedAppUsage
public boolean stopScoUsingVirtualVoiceCall() { public boolean stopScoUsingVirtualVoiceCall() {
if (DBG) log("stopScoUsingVirtualVoiceCall()"); if (DBG) log("stopScoUsingVirtualVoiceCall()");
final IBluetoothHeadset service = mService; final IBluetoothHeadset service = mService;
@@ -1343,9 +1342,10 @@ public final class BluetoothHeadset implements BluetoothProfile {
* @return true if in-band ringing is enabled, false if in-band ringing is disabled * @return true if in-band ringing is enabled, false if in-band ringing is disabled
* @hide * @hide
*/ */
@SystemApi
@RequiresLegacyBluetoothPermission @RequiresLegacyBluetoothPermission
@RequiresBluetoothConnectPermission @RequiresBluetoothConnectPermission
@RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT) @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean isInbandRingingEnabled() { public boolean isInbandRingingEnabled() {
if (DBG) { if (DBG) {
log("isInbandRingingEnabled()"); log("isInbandRingingEnabled()");