0

我认为实际上不使用 LocationProvider 是不可能的,但我想我会看看是否有人有任何想法。

基本上我有一个应用程序,它有一个 PageView w/一个片段,其中包含一个新的 MapView 2.0

我可以通过 getMyLocation 从 GoogleMap 对象轻松提取我的位置。

我过去遇到过问题;在某些设备上,同时使用 NetworkLocation 和 GpsLocation 提供程序。因为我可以从 GoogleMap 中提取我的位置,所以我有一种简单的方法来检查我的位置。

我唯一的问题是我可以通过处理 onCameraChanged 来观察地图平移以更新地图,但它不处理地图内的位置变化。

我当前的实现是我有一个 MapView 和 LocationProvider.. 位置提供程序在服务中,并设置为根据用户确定的时间(1、5、10、15、30、60 秒)进行更新。活动通过 AIDL 连接到服务,如果连接的活动 >0,则启用 locationProvider,如果没有,则关闭。不过,这对谷歌地图确实没什么影响,如果我们不处理与谷歌地图相同的 GPS 信号丢失,我们得到的位置与谷歌地图不同。

我的 3 个选项中的第一个:获取提供者,并将其传递给我可以在位置更改时获得回调的地方(并不是真的想这样做)。这将涉及通过 LocationSource..

第二个选项获取我在当前服务中使用的当前位置提供程序,每次更新时,只需从地图中获取位置。我想这会起作用,但似乎有点多余,并且在屏幕关闭等时仍然存在管理 LocationProviders 的问题。(不必使用谷歌地图)

另一种选择是提供一个服务,该服务将接口传递给可以查询当前位置的地图对象。并且每隔 x 秒执行一次用户指示。我可以为此重用大部分服务,只需要设置它以继续调用。

我在想的另一件事可能只是使用被动提供程序来更新当前位置,而不是使用当前的 MapView。

我唯一的其他考虑是欺骗:我想尝试防止位置欺骗。我可以做到,所以我们不允许模拟位置。但这并不意味着它仍然不能被欺骗。

所以......任何想法将不胜感激。谢谢。

4

1 回答 1

2

Google 引入了新的LocationClient和关联LocationListener的(之前引入的OnMyLocationChangeListener接口现在已弃用)。

于 2013-02-27T12:03:13.203 回答