当扫描蓝牙低能量数据包时,我接收到设置了scanResult的scanCallback。我可以用result.getTimeStampNanos()得到“观察到扫描结果时的设备时间戳”,但这次不与systems.nanoTime()对齐。有办法从一个转变到另一个吗?

最佳答案

使用以下代码通过使用systemclock.elapsedrealtime()将getTimeStampNanos()转换为系统毫秒:

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

可以很容易地将其转换为日期对象:
Date rxDate = new Date(rxTimestampMillis);

然后将时间作为字符串:
String sDate = new SimpleDateFormat("HH:mm:ss.SSS").format(rxDate);

关于android - Android BLE:将ScanResult timestampNanos转换为System nanoTime,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32338115/

10-09 16:31