From bb5aac452b216d95848e6c13154ab618372b3d1b Mon Sep 17 00:00:00 2001 From: Sammy Maris Date: Fri, 5 May 2017 11:44:10 +0200 Subject: [PATCH] Add RSSI to result when discovering devices --- .../RCTBluetoothSerial/RCTBluetoothSerialModule.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/rusel/RCTBluetoothSerial/RCTBluetoothSerialModule.java b/android/src/main/java/com/rusel/RCTBluetoothSerial/RCTBluetoothSerialModule.java index be90cf3..c63d56c 100644 --- a/android/src/main/java/com/rusel/RCTBluetoothSerial/RCTBluetoothSerialModule.java +++ b/android/src/main/java/com/rusel/RCTBluetoothSerial/RCTBluetoothSerialModule.java @@ -232,7 +232,7 @@ public void list(Promise promise) { Set bondedDevices = mBluetoothAdapter.getBondedDevices(); for (BluetoothDevice rawDevice : bondedDevices) { - WritableMap device = deviceToWritableMap(rawDevice); + WritableMap device = deviceToWritableMap(rawDevice, null); deviceList.pushMap(device); } } @@ -525,7 +525,7 @@ private void sendEvent(String eventName, @Nullable WritableMap params) { * Convert BluetoothDevice into WritableMap * @param device Bluetooth device */ - private WritableMap deviceToWritableMap(BluetoothDevice device) { + private WritableMap deviceToWritableMap(BluetoothDevice device, Integer rssi) { if (D) Log.d(TAG, "device" + device.toString()); WritableMap params = Arguments.createMap(); @@ -533,6 +533,9 @@ private WritableMap deviceToWritableMap(BluetoothDevice device) { params.putString("name", device.getName()); params.putString("address", device.getAddress()); params.putString("id", device.getAddress()); + if (rssi != null) { + params.putInt("rssi", rssi); + } if (device.getBluetoothClass() != null) { params.putInt("class", device.getBluetoothClass().getDeviceClass()); @@ -650,7 +653,8 @@ public void onReceive(Context context, Intent intent) { if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); - WritableMap d = deviceToWritableMap(device); + int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE); + WritableMap d = deviceToWritableMap(device, rssi); unpairedDevices.pushMap(d); } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { if (D) Log.d(TAG, "Discovery finished");