Skips the consent pairing dialog for recently associated CDM app and device combos because they have already been shown the CDM prompt which implicitly provides consent to bond.
Tag: #feature Bug: 172006481 Test: Manual Change-Id: I541b720c6b8b6e55be10e04f202e0a58cf33715f
This commit is contained in:
@@ -1654,7 +1654,7 @@ public final class BluetoothAdapter {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
private String getOpPackageName() {
|
||||
String getOpPackageName() {
|
||||
// Workaround for legacy API for getting a BluetoothAdapter not
|
||||
// passing a context
|
||||
if (mContext != null) {
|
||||
|
||||
@@ -1236,7 +1236,8 @@ public final class BluetoothDevice implements Parcelable {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
return service.createBond(this, transport, oobData);
|
||||
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
|
||||
return service.createBond(this, transport, oobData, adapter.getOpPackageName());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "", e);
|
||||
}
|
||||
@@ -1393,6 +1394,31 @@ public final class BluetoothDevice implements Parcelable {
|
||||
return BOND_NONE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether this bluetooth device is associated with CDM and meets the criteria to skip
|
||||
* the bluetooth pairing dialog because it has been already consented by the CDM prompt.
|
||||
*
|
||||
* @return true if we can bond without the dialog, false otherwise
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
|
||||
public boolean canBondWithoutDialog() {
|
||||
final IBluetooth service = sService;
|
||||
if (service == null) {
|
||||
Log.e(TAG, "BT not enabled. Cannot check if we can skip pairing dialog");
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
if (DBG) Log.d(TAG, "canBondWithoutDialog, device: " + this);
|
||||
return service.canBondWithoutDialog(this);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether there is an open connection to this device.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user