diff options
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/server/BluetoothDeviceService.java | 11 | ||||
-rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 4 |
2 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/server/BluetoothDeviceService.java b/core/java/android/server/BluetoothDeviceService.java index dcaede2..75c590d 100644 --- a/core/java/android/server/BluetoothDeviceService.java +++ b/core/java/android/server/BluetoothDeviceService.java @@ -809,7 +809,16 @@ public class BluetoothDeviceService extends IBluetoothDevice.Stub { } /* package */ synchronized void addRemoteDeviceProperties(String address, String[] properties) { - Map<String, String> propertyValues = new HashMap<String, String>(); + /* + * We get a DeviceFound signal every time RSSI changes or name changes. + * Don't create a new Map object every time */ + Map<String, String> propertyValues = mRemoteDeviceProperties.get(address); + if (propertyValues != null) { + propertyValues.clear(); + } else { + propertyValues = new HashMap<String, String>(); + } + for (int i = 0; i < properties.length; i+=2) { String value = null; if (propertyValues.containsKey(properties[i])) { diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 00c13b7..ed66dce 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -130,12 +130,14 @@ class BluetoothEventLoop { mBluetoothService.addRemoteDeviceProperties(address, properties); String rssi = mBluetoothService.getRemoteDeviceProperty(address, "RSSI"); String classValue = mBluetoothService.getRemoteDeviceProperty(address, "Class"); + String name = mBluetoothService.getRemoteDeviceProperty(address, "Name"); if (rssi != null && classValue != null) { Intent intent = new Intent(BluetoothIntent.REMOTE_DEVICE_FOUND_ACTION); intent.putExtra(BluetoothIntent.ADDRESS, address); - intent.putExtra(BluetoothIntent.CLASS, classValue); + intent.putExtra(BluetoothIntent.CLASS, Integer.valueOf(classValue)); intent.putExtra(BluetoothIntent.RSSI, (short)Integer.valueOf(rssi).intValue()); + intent.putExtra(BluetoothIntent.NAME, name); mContext.sendBroadcast(intent, BLUETOOTH_PERM); } else { |