谁在 Android 的 LocationManager 中触发 onLocationChanged?

发布于 2024-12-02 11:48:28 字数 185 浏览 1 评论 0 原文

我在之前关于 Android 位置提供程序的帖子中寻找这个答案,但我找不到答案。 onLocationChanged 是如何触发的?从 GPS 守护程序/库修复位置到到达 LocationManager 的过程是什么?它是直接由 Gps 守护进程触发还是首先在 Android Java 框架中的某个位置触发?

非常感谢

N

I was looking for this answer in previous posts about Android's Location Provider but I couldn't find the answer. How is onLocationChanged triggered and what is the process since the GPS daemon/library fixes a location until it reaches the LocationManager? Is it directly triggered by the Gps daemon or does it go first somewhere in the Android Java Framework?

Many thanks

N

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红ご颜醉 2024-12-09 11:48:28

我一直在查看代码,这就是我到目前为止所拥有的:

requestLocationUpdates 注册了 onLocationChangeListener。
这反过来作为键存储在哈希图中,值为 ListenerTransport。

ListenerTransport 有一个 私有变量 这是有问题的听众。 ListenerTransport 似乎只是一个接收消息的类,它 调用 onLocationChange侦听器的方法

这就是我迷路的地方:
ListenerTransport 扩展了 ILocationListener.Stubs,而 ILocationListener.Stubs 又扩展了 Binder。因此,它是一种 RPC 调用。但是电话会去哪里呢?

我注意到在 requestLocationUpdates()ILocationListener.Proxy 中,有一个对 IBinder.transact(Stub.TRANSACTION_requestLocationUpdates,...) 的调用。事情会走向何方以及会发生什么还有待观察……

I've been looking around the code and this is what i have thus far:

requestLocationUpdates registers the onLocationChangeListener.
This in turn gets stored as a key in a hashmap with a value of a ListenerTransport.

The ListenerTransport has a private variable which is the listener in question. The ListenerTransport just seems to be a class that recieves a message, which calls the onLocationChange method of the listener.

This is where i'm lost:
The ListenerTransport extends ILocationListener.Stubs which extends Binder. Hence, its a type of RPC call. But where does the call go?

I've noticed in ILocationListener.Proxy in requestLocationUpdates(), theres a call to IBinder.transact(Stub.TRANSACTION_requestLocationUpdates,...). It's to be seen where this goes and what happens...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文