Bluetooth LE ScanResult vuelve nula, pero sé que mi periférica está transmitiendo una frecuencia cardíaca de servicio UUID (según lo verificado por aplicación BLE tercera parte). ¿Por qué?

Escher:

Estoy frustrado por mi exploración BLE regresar sin servicio UUID GATT (es decir, los scanRecord.getServiceUUIDs()rendimientos null). Sin embargo, sé que mi periférica de la frecuencia cardíaca y la publicidad está funcionando correctamente porque el servicio de la frecuencia cardíaca se descubrió (y legible) por la aplicación LightBlue). Aquí está mi función en mi ScanCallbackobjeto:

override fun onScanResult(callbackType: Int, result: ScanResult?) {
    super.onScanResult(callbackType, result)
    // This log shows that result.mServiceUuids is null
    Log.i(TAG, "BLEDeviceManager.ScanCallback.onScanResult: ${result.toString()}")

    // TODO: handle null ScanResult
    val parcelUuids = if (result.getScanRecord() != null) result.getScanRecord()!!.getServiceUuids() else null
    if (parcelUuids == null) {
        Log.i(TAG, "parcelUUids was null for scanRecord = ${result.getScanRecord()!!.toString()}")
        return
    }
    val serviceList = ArrayList<UUID>()
    for (i in parcelUuids.indices) {
        val serviceUUID = parcelUuids.get(i).getUuid()
        if (!serviceList.contains(serviceUUID))
            serviceList.add(serviceUUID)
    }
    Log.i(TAG, "Here is a list of the service UUIDs: $serviceList")
}

Aquí está el registro de:

I / BLEDeviceManager: parcelUUids era nulo para scanRecord = ScanRecord [mAdvertiseFlags = 6, mServiceUuids = null, mServiceSolicitationUuids = null, mManufacturerSpecificData = {}, mServiceData = {}, mTxPowerLevel = 3, mDeviceName = blehr_sensor_1.0]

¿Qué estoy haciendo mal, por ejemplo que el mServiceUuidssiempre es nulo?

Martijn van Welie:

De acuerdo con la ScanRecord que la producción, el dispositivo no es la publicidad de cualquier servicio UUID. Eso no significa que no tiene ese servicio .... simplemente no se anuncian.

Es posible que desee conectarse a él y luego llamar discoverServices () para obtener la lista de servicios que realmente ha ...

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=320567&siteId=1
Recomendado
Clasificación