Skip to content

Commit 855c856

Browse files
biii-techbiii-anuj-pathak
authored andcommitted
MFG Data fix
Append MFG data of Advertising and ScanResponse Packet. By Spec Ble allows sending MFG data of more than 24 bytes by adding MFG data fields in the scan response packet, by default iOS concat it but android doesn't thus we manually concat mfg data spreaded across multiple packets
1 parent dd4ac5b commit 855c856

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

packages/reactive_ble_mobile/android/src/main/kotlin/com/signify/hue/flutterreactiveble/converters/ManufacturerDataConverter.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@ package com.signify.hue.flutterreactiveble.converters
22

33
import android.util.SparseArray
44

5-
fun extractManufacturerData(manufacturerData: SparseArray<ByteArray>?): ByteArray {
5+
fun extractManufacturerData(manufacturerData: SparseArray<ByteArray>): ByteArray {
66
val rawData = mutableListOf<Byte>()
77

8-
if (manufacturerData != null && manufacturerData.size() > 0) {
8+
if (manufacturerData.size() > 0) {
99
val companyId = manufacturerData.keyAt(0)
10-
val payload = manufacturerData.get(companyId)
11-
1210
rawData.add((companyId.toByte()))
1311
rawData.add(((companyId.shr(Byte.SIZE_BITS)).toByte()))
14-
rawData.addAll(2, payload.asList())
12+
rawData.addAll(manufacturerData.valueAt(0).asList())
13+
14+
for (i in 1 until manufacturerData.size()) {
15+
rawData.addAll(manufacturerData.valueAt(i).asList())
16+
}
1517
}
1618

1719
return rawData.toByteArray()

0 commit comments

Comments
 (0)