From 42a25ba82e4c24ebfa311528fdf4a4eaea040ff8 Mon Sep 17 00:00:00 2001 From: Jack He Date: Mon, 3 Apr 2017 15:13:57 -0700 Subject: [PATCH] Bluetooth: Ensure only desired intents are being handled * Prevent arbitrary intents from making Bluetooth undiscoverable by only allowing DISCOVERABLE_TIMEOUT intent to be handled Bug: 33058582 Test: make, test for Broadcast and Bluetooth scanning Change-Id: Ib8b04dddf1610a082d167825253f3e1c968aaa14 --- .../bluetooth/BluetoothDiscoverableTimeoutReceiver.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothDiscoverableTimeoutReceiver.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothDiscoverableTimeoutReceiver.java index 69b45e5541b2c..9ea7a4af8d128 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothDiscoverableTimeoutReceiver.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothDiscoverableTimeoutReceiver.java @@ -71,14 +71,15 @@ public class BluetoothDiscoverableTimeoutReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { + if (intent.getAction() == null || !intent.getAction().equals(INTENT_DISCOVERABLE_TIMEOUT)) { + return; + } LocalBluetoothAdapter localBluetoothAdapter = LocalBluetoothAdapter.getInstance(); - - if(localBluetoothAdapter != null && + if(localBluetoothAdapter != null && localBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) { Log.d(TAG, "Disable discoverable..."); - localBluetoothAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE); - } else { + } else { Log.e(TAG, "localBluetoothAdapter is NULL!!"); } }