其他分享
首页 > 其他分享> > Android BLE:将ScanResult timestampNanos转换为System nanoTime

Android BLE:将ScanResult timestampNanos转换为System nanoTime

作者:互联网

扫描低功耗蓝牙数据包时,我收到设置了ScanResult的ScanCallback.我可以通过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);

标签:bluetooth,bluetooth-lowenergy,timestamp,android
来源: https://codeday.me/bug/20191027/1948394.html