locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1200000, 200, ll);我的假设是,如果变化超过200米,它每隔12万毫秒就会得到一次位置。
至少这是我正在经历的,anyway....which是我想要的。但是,如果手机最终落在一个没有GPS信号的金属建筑里,会发生什么呢?
它会一直尝试每120万毫秒一次的GPS修复吗?或者这最终会消失,不再起作用…??
如果我把手机放在仪表盘上,开着around...every 120000ms,我会发送一条带有最新坐标的短信。一切都运行得很好。但是,如果手机最终在建筑物中停留了3-4-5个小时,并在3-4-5小时内返回,later....my希望它会回到它离开的地方,并给我发送一个新的位置(如果它改变了200米以上)。但事实似乎并非如此。它只是停止工作,我从来没有得到一个新的位置,即使我确实有一个清晰的天空。想知道在这么多次尝试获取GPS定位之后,这是否会停止搜索GPS定位或其他东西...?
发布于 2010-10-26 21:11:37
听起来像是在搜索Critera类。
您基本上定义了一组标准,然后使用这些标准来获得符合此标准的最佳提供商。然后将此条件传递给LocationManager类的getProviders()方法,以字符串形式获得最合适的提供程序。无论是GPS、网络等。
您也可以通过执行以下操作手动指定修复提供程序
// Get a fix from the GPS provider
LocationProvider provider = LocationManager.GPS_PROVIDER;
// Get a fix from the Network provider
LocationProvider provider = LocationManager.NETWORK_PROVIDER;开发者网站上有一个关于obtaining users location的非常有趣的读物,你可能想看看。特别是关于deciding when to start listening的部分,您可能会感兴趣,但我建议您阅读整篇文章。
使用网络提供商将获得您的最佳位置,而没有GPS定位,换句话说,也在建筑物内。您必须记住,在查询网络提供商时,您获得的位置定位可能与实际位置相差甚远。
您请求requestLocationUpdates(String provider, long minTime, long minDistance, LocationListener listener)的方法将每隔minTime毫秒或每隔minDistance米向set提供程序请求一次位置更新,并通知监听器。
希望能有所帮助。
发布于 2010-10-26 21:00:48
你查过this site了吗?特别是这个链接:http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String
void requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent)注册要由指定的提供程序定期通知的当前活动。
void requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)注册要由指定的提供程序定期通知的当前活动。
void requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener, Looper looper)注册要由指定的提供程序定期通知的当前活动。
但是您显示的调用使用int作为最后一个参数。这不是一个有文档记录的函数。
https://stackoverflow.com/questions/4023855
复制相似问题