java - 蓝牙 LE - 如何获得广告间隔(以毫秒为单位)?

标签 java android kotlin bluetooth-lowenergy

我必须获得以毫秒为单位的广告间隔。我使用了 result.periodicAdvertisingInterval 但这返回 0。我必须实现这样的东西:

enter image description here

private val scanCallback = object : ScanCallback(){
    @RequiresApi(Build.VERSION_CODES.N)
    @SuppressLint("MissingPermission", "NotifyDataSetChanged")

    override fun onScanResult(callbackType: Int, result: ScanResult) {

       val scanJob = CoroutineScope(Dispatchers.Main).launch {
            val tag = deviceMap.computeIfAbsent(result.device.address) {
                val newTag = BleTag(result.device.name ?: "Unbekannt", result.device.address, result.rssi , result.scanRecord?.bytes, "")
                deviceList.add(newTag)
                newTag
            }
            tag.name = result.device.name ?: "Unbekannt"
            tag.rssi = result.rssi
            tag.advertisementData = result.scanRecord?.bytes
        }

        deviceList.sortBy {result.rssi }

        recyclerView.adapter?.notifyDataSetChanged()
        menu.findItem(R.id.count).title = "Geräte: " + deviceList.size

        super.onScanResult(callbackType, result)
    }

    override fun onScanFailed(errorCode: Int) {
        super.onScanFailed(errorCode)
        Log.e("Scan failed","")
    }
}

最佳答案

这个结果是减去 timestamps 得到的。同一设备的两个连续广告。

关于java - 蓝牙 LE - 如何获得广告间隔(以毫秒为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74011557/

相关文章:

android - Dagger-android 共享 Activity 之间的依赖关系

android - Android服务中的ACRCloud音乐识别

java - 将 json 插入 postgreSQL

java - Apache Camel 在多个文件上触发路由

android - 多个 IntentServices 并行运行

java.lang.IndexOutOfBoundsException : Invalid index 1, 在 Sectioned RecyclerView 中大小为 1

android - Windows 8.1 64 位上的 PhoneGap 使用 Platform add android 命令出现错误

Java正则表达式_标签之间的文本?

java - Gradle 下的 JUnit 5 具有多个源集

android - 我做项目的时候加的。 AndroidX Artifact 从此就没有mqt通信了。问题是什么?