From ffbff53cbe8a75bacdec6998d563b68d7b6d0764 Mon Sep 17 00:00:00 2001 From: liuxiaoyu7 Date: Wed, 9 Dec 2020 14:21:51 +0800 Subject: [PATCH] [Bugfix]audio:fix NPE when buildBluetoothRoutes Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.Set.iterator()' on a null object reference at com.android.server.media.BluetoothRouteProvider.buildBluetoothRoutes(BluetoothRouteProvider.java:165) at com.android.server.media.BluetoothRouteProvider.access$900(BluetoothRouteProvider.java:53) at com.android.server.media.BluetoothRouteProvider$AdapterStateChangedReceiver.onReceive(BluetoothRouteProvider.java:462) at com.android.server.media.BluetoothRouteProvider$BluetoothBroadcastReceiver.onReceive(BluetoothRouteProvider.java:445) at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1564) Signed-off-by: liuxiaoyu7 Change-Id: I6828a319248deff851d46f259cfaf392fde04a1d --- .../android/server/media/BluetoothRouteProvider.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/media/BluetoothRouteProvider.java b/services/core/java/com/android/server/media/BluetoothRouteProvider.java index 3a4dfaf9bfcd8..a6062f5fc4e0c 100644 --- a/services/core/java/com/android/server/media/BluetoothRouteProvider.java +++ b/services/core/java/com/android/server/media/BluetoothRouteProvider.java @@ -162,11 +162,13 @@ class BluetoothRouteProvider { private void buildBluetoothRoutes() { mBluetoothRoutes.clear(); - for (BluetoothDevice device : mBluetoothAdapter.getBondedDevices()) { - if (device.isConnected()) { - BluetoothRouteInfo newBtRoute = createBluetoothRoute(device); - if (newBtRoute.connectedProfiles.size() > 0) { - mBluetoothRoutes.put(device.getAddress(), newBtRoute); + if (mBluetoothAdapter.getBondedDevices() != null) { + for (BluetoothDevice device : mBluetoothAdapter.getBondedDevices()) { + if (device.isConnected()) { + BluetoothRouteInfo newBtRoute = createBluetoothRoute(device); + if (newBtRoute.connectedProfiles.size() > 0) { + mBluetoothRoutes.put(device.getAddress(), newBtRoute); + } } } }