2016-03-28 21 views
2

wifiManager.startScan() sitesini kullanıyorum; Yakındaki Wi-Fi erişim noktalarından veri almak için Bu bir ScanResult listesi olarak geri döndürülür. Bu sınıf burada bulunabilir: http://developer.android.com/reference/android/net/wifi/ScanResult.html#timestampAndroid ScanResult Zaman Damgası Alanı - Ne kadar doğru?

Bu sonuç son görüldüğü zaman ScanResult zaman damgası alanı (çizme beri) mikrosaniye içinde

damgası olduğunu anlıyoruz.

yüzden erişim noktası Smartphone cihazı tarafından görüldü ne zaman gerçek damgası almak için bazı hesaplamalar kullanın:

long actualTimestamp = System.currentTimeMillis() - SystemClock.elapsedRealtime() + (scanResult.timestamp/1000); 

Bu iyi çalışır, ama bazı nadir ilginç sonuçlar yaşıyorum :

15:04:01 28-03-2016 - 1459173841

22:50:44 07-06-2016 - 146533624 4

15:04:21 28-03-2016 - için girdiği Haziran 2016 yukarıda 1459173861

Bildirim, diğer okumalardan arasında yer almaktadır gelecekte tarih Listesi'nde içinden toplanan .

burada sorun ne olabilir? Kodum biraz yanlış mı? Zaman damgası değeri bazen yanlış mı? Bunu daha önce deneyimleyen var mı?

Düzenleme: Nexus 5 Hatmi cihazında bu test ediyorum. MinSDK 18, Hedef 23

+0

yıldızı çekinmeyin. Ben X ms daha yaşlıdır sonuçları filtrelemek için deneyin ama iyi erişim noktasını bulmak için olmamalıdır scanresults içeriyorsa veya yanlış bir sinyal gücünü içeren bir listede sonuçları (benim app çalışır eminim ve onu sürekli olarak AP'yi seçiyor: * bir diğerine doğru hareket etmeden önce * en iyisi *) sinyal seviyesinin ve zaman damgasının uyuşmadığına inanmamı sağladı. – REJH

+0

Bir düşünün .. belki bu konuda AOSP hata izleyicisinde bir sorun yaratın? – REJH

+0

@REJH bu yazıdan bu yana, bir telefonun çoğunu hareket halindeyken (yürüme, sürüş vb.) Çoğaltma olanağı buldum. Zaman damgası gelecekte olacaktı. Farklı bir cihazda, sonuçlarda hiçbir zaman damgası kalmaz, asla kaldırılmaz, her zaman güncelliğini yitirir. Tüm sonuçlara güvenemeyeceğimizi varsaymak güvenlidir, ancak bunları filtreleyebiliriz. Taramayı başlattığınızda ve bittiğinde, yalnızca o zaman dilimi arasındaki sonuçları seçin. – Jonty800

cevap

1

bir açıklama var gibi: Bu bir hata değildir. Bazen (Açıldıktan sonra mikrosaniye) .timestamp görüyoruz

(Epoch'tan beri saniye) .seen eşit olacaktır. Günümüzde Epoch süresi, mikrosaniye zaman periyodu olarak yeniden yorumlandığında yaklaşık 17 gündür. 2 değerleri açıkça eşit olamaz yana

, ben Android sunmuştur: https://code.google.com/p/android/issues/detail?id=225218 Ben de güvenmiyorum bazı sonuçları alıyorum sorunu :)

İlgili konular