我一直在尋找這個答案以前的帖子關於Android的位置提供商,但我找不到答案。如何觸發onLocationChanged,以及自從GPS守護程序/庫修復了一個位置直到它到達LocationManager之後的過程是什麼?它是由Gps守護進程直接觸發還是首先在Android Java Framework中的某處執行?誰在Android的LocationManager中觸發onLocationChanged?
非常感謝
ň
我一直在尋找這個答案以前的帖子關於Android的位置提供商,但我找不到答案。如何觸發onLocationChanged,以及自從GPS守護程序/庫修復了一個位置直到它到達LocationManager之後的過程是什麼?它是由Gps守護進程直接觸發還是首先在Android Java Framework中的某處執行?誰在Android的LocationManager中觸發onLocationChanged?
非常感謝
ň
我一直在尋找周圍的代碼,這是我迄今:
requestLocationUpdates註冊onLocationChangeListener。 這又是gets stored作爲hashmap中的一個關鍵字,其值爲ListenerTransport。
ListenerTransport有一個private variable這是有問題的聽衆。 ListenerTransport似乎是一個接收消息的類,它是監聽器的一個類。
這就是我迷失的地方: ListenerTransport延伸ILocationListener.Stubs
它擴展了Binder。因此,它是一種RPC調用。但通話去了哪裏?
我注意到ILocationListener.Proxy
在requestLocationUpdates()
,theres致電IBinder.transact(Stub.TRANSACTION_requestLocationUpdates,...)
。這是要看到這發生了什麼,發生了什麼...
嗨!感謝您的迴應,但這不是我正在尋找的。這基本上是從應用程序的角度來看這是如何工作的...我想看看GPS庫/守護程序在哪裏以及如何使用reportLocation(...)向GpsLocationProvider報告新的位置更新。 – Narseo
這是一個很好的問題。我正在查看源代碼並試圖弄清楚位置來自哪裏。不過,我迷失在一片界面之中。 – Ian