Check bond state when bluetooth key is missing
Bug: 403847818 Test: local tested Flag: EXEMPT minor fix Change-Id: I3f310b5758ebecd7591d76988b351d3c6a7dfc67
This commit is contained in:
@@ -55,9 +55,18 @@ public final class BluetoothKeyMissingReceiver extends BroadcastReceiver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
||||||
|
if (device == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
PowerManager powerManager = context.getSystemService(PowerManager.class);
|
PowerManager powerManager = context.getSystemService(PowerManager.class);
|
||||||
if (TextUtils.equals(action, BluetoothDevice.ACTION_KEY_MISSING)) {
|
if (TextUtils.equals(action, BluetoothDevice.ACTION_KEY_MISSING)) {
|
||||||
Log.d(TAG, "Receive ACTION_KEY_MISSING");
|
Log.d(TAG, "Receive ACTION_KEY_MISSING");
|
||||||
|
if (device.getBondState() == BluetoothDevice.BOND_NONE) {
|
||||||
|
Log.d(
|
||||||
|
TAG,
|
||||||
|
"Device " + device.getAnonymizedAddress() + " is already unbonded, skip.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
Integer keyMissingCount = BluetoothUtils.getKeyMissingCount(device);
|
Integer keyMissingCount = BluetoothUtils.getKeyMissingCount(device);
|
||||||
if (keyMissingCount != null && keyMissingCount != 1) {
|
if (keyMissingCount != null && keyMissingCount != 1) {
|
||||||
Log.d(TAG, "Key missing count is " + keyMissingCount + ", skip.");
|
Log.d(TAG, "Key missing count is " + keyMissingCount + ", skip.");
|
||||||
|
@@ -127,6 +127,7 @@ public class BluetoothKeyMissingReceiverTest {
|
|||||||
public void broadcastReceiver_background_showNotification() {
|
public void broadcastReceiver_background_showNotification() {
|
||||||
Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
|
Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
|
||||||
when(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)).thenReturn(mBluetoothDevice);
|
when(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)).thenReturn(mBluetoothDevice);
|
||||||
|
when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
|
||||||
BluetoothKeyMissingReceiver bluetoothKeyMissingReceiver = getReceiver(intent);
|
BluetoothKeyMissingReceiver bluetoothKeyMissingReceiver = getReceiver(intent);
|
||||||
bluetoothKeyMissingReceiver.onReceive(mContext, intent);
|
bluetoothKeyMissingReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
@@ -141,6 +142,7 @@ public class BluetoothKeyMissingReceiverTest {
|
|||||||
when(mLocalBtManager.isForegroundActivity()).thenReturn(true);
|
when(mLocalBtManager.isForegroundActivity()).thenReturn(true);
|
||||||
Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
|
Intent intent = spy(new Intent(BluetoothDevice.ACTION_KEY_MISSING));
|
||||||
when(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)).thenReturn(mBluetoothDevice);
|
when(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)).thenReturn(mBluetoothDevice);
|
||||||
|
when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
|
||||||
BluetoothKeyMissingReceiver bluetoothKeyMissingReceiver = getReceiver(intent);
|
BluetoothKeyMissingReceiver bluetoothKeyMissingReceiver = getReceiver(intent);
|
||||||
bluetoothKeyMissingReceiver.onReceive(mContext, intent);
|
bluetoothKeyMissingReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user