gpt4 book ai didi

android - 当 Google Play 服务无法获取位置修复时,我如何收到通知?

转载 作者:太空狗 更新时间:2023-10-29 15:09:17 26 4
gpt4 key购买 nike

我有一个 Android 应用程序需要确定其当前位置(使用 Google Play Services LocationClient),然后将该位置发送回服务器。这需要定期在后台发生,例如每5分钟

此代码运行良好,通常每 5 分钟提供一次位置,误差在几秒内。当 android 无法修复时会出现问题。在这些情况下,我希望回调在 5 分钟后使用 NULL 位置对象运行,但是这并没有发生。应用程序只是继续寻找位置,而不调用回调。

我使用如下创建的 locationRequest 对象调用 LocationClient 的 requestLocationUpdates 方法

locationrequest = LocationRequest.create();
locationrequest.setInterval(5 * 60 * 1000);
locationrequest.setFastestInterval(3 * 60 * 1000);
locationrequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationrequest.setExpirationDuration(45 *1000);
locationclient.requestLocationUpdates(locationrequest, mPendingIntent);

我找不到合适的方法让 LocationClient 每 5 分钟给我打电话,即使它无法获得位置。我很高兴我可以有一个每 5 分钟响一次的警报,然后将最近的位置发送回服务器,但我希望在回调中处理发送。

有没有其他人必须处理这种情况,或者知道如何解决它?

最佳答案

我不知道您在其余代码中做了什么,但我认为您只需要管理您的 LocationRequestLocationClient关于 Activity 的生命周期方法或 Fragment你调用他们。

receiving location updates教程以及this post来自 android 开发者博客的就是很好的例子。

因为您的应用必须连接到 LocationClient如果您在说 onResume() 期间打开和关闭这些更新,则接收更新或 onCreate()onStop()当您的应用程序位于前台时,您实际上只运行计时器。然后,正如开发人员博客文章所建议的那样,当您的应用程序处于后台时,您可以切换到被动位置监听器,该监听器仍然可以接收更新但不使用相同的基于计时器的方法。当您的应用程序返回前台时,您可以关闭被动监听器,重新连接到 Google Play Services并再次启动您的 5 分钟计时器。

关于android - 当 Google Play 服务无法获取位置修复时,我如何收到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18534846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com