安卓蓝牙 : Convert ScanResult timestampNanos to System nanoTime

标签 android bluetooth timestamp bluetooth-lowenergy

扫描低功耗蓝牙数据包时,我收到 ScanCallback 并设置了 ScanResult。我可以使用 result.getTimestampNanos() 获得“观察到扫描结果时的设备时间戳”,但这次与 Systems.nanoTime() 不一致。有没有办法从一种转换成另一种?

最佳答案

使用以下代码通过 SystemClock.elapsedRealtime() 将 getTimestampNanos() 转换为系统毫秒:

long rxTimestampMillis = System.currentTimeMillis() - 
                         SystemClock.elapsedRealtime() +
                         scanResult.getTimestampNanos() / 1000000;

这可以很容易地转换为 Date 对象:

Date rxDate = new Date(rxTimestampMillis);

然后你就可以得到一个字符串形式的时间:

String sDate = new SimpleDateFormat("HH:mm:ss.SSS").format(rxDate);

关于安卓蓝牙 : Convert ScanResult timestampNanos to System nanoTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32338115/

相关文章:

php - 如何使用 PHP 获取到午夜的小时数

postgresql - ALTER table column to timestamp now() 属性

android - 如何在 android studio 中运行多个 avd?

java - 尝试将 int 变量从 Activity 传递到 Adapter

android - Ionic View 应用程序的“无效凭据”

objective-c - Xcode 中蓝牙设备的设备名称

android - 检测到屏幕覆盖 | (Android 6.x) 联想、红米和三星设备

android - 简单的 Android BLE 扫描仪

iphone - 如何通过蓝牙获取附近ios设备的信息

java - 将 XMLGregorianCalendar 转换为 java.sql.Timestamp