当前位置: 首页 > 知识库问答 >
问题:

如何使用服务使用位置数据?

黄流觞
2023-03-14

因为我有一个长期运行的任务要在我的应用程序的后台执行,所以我正在尝试实现一个服务来完成一项工作。

此服务使用LocationClient实例中的位置数据,每个请求都会触发一个PendingEvent。最低目标版本阻止我使用新的LocationServices,Android文档建议我使用LocationClient的PendingEvent版本。requestLocationUpdates(…)方法,因为应用程序可能已被系统终止。

我看到的每一个与类似描述匹配的示例都实现了一个IntentService,并覆盖了onHandleIntent(Intent Intent),后者接收额外更改的Intent KEY_LOCATION_。然而,服务中没有这样的方法,这样的意图也没有传递给onStartCommand(…)正如我所料。

此代码用于设置对位置数据的请求,来自Locationaskester对象(可以在任何时候运行任意数量的对象,但是当只生成一个并发出请求时,结果是相同的):

Intent intent = new Intent(context, MyLocationService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
locationClient.requestLocationUpdates(someLocationRequest, pendingIntent);

当我在上面的代码中使用MyLocation*Intent*服务时,意图将被传递到MyLocationIntentService。onHandleIntent(intent),我会额外寻找钥匙位置。在对服务进行更改后,我不知道如何使用位置数据。我已确保发出请求时LocationClient已连接。

我试过监视onStartCommand(…)而意图并没有在那里实现。我的问题是:如何在服务实现中使用位置数据?

如果我有什么不清楚或需要更多信息,请告诉我。谢谢

共有1个答案

司马辉
2023-03-14

我为自己找到了一个解决方案,尽管它没有我想要的那么干净。

我使用服务来创建请求器对象,它们是LocationListener的每个实现,只消耗它们自己的请求。这意味着放弃问题中的几个约束:(。在接收到一个位置(在被覆盖的onLocationChanged(...)方法中)时,请求器对象将向服务发出一个意图,其中包含特定的细节作为Extras。

换句话说,服务没有直接使用位置数据——请求位置数据的个人使用了位置数据,并通过做出意图、附加相关数据和调用startService(…)将位置数据转发回服务,这是服务人员接的。onStartCommand(…)。

 类似资料:
  • (near)或(照片)等应用程序的功能,可使用目前的位置数据。使用各应用程序时会显示是否使用位置数据的确认画面。在此会显示允许使用位置数据的应用程序列表。 若轻触[使用位置数据]的方格停用设定,则所有的应用程序都无法使用位置数据。 依您使用的国家或地区不同,可能无法使用此功能。 若在[加密]>[视听者限制]内限制使用位置数据,无法进行此设定。 关于取得位置数据 3G/Wi-Fi机种 使用Wi-Fi

  • 我开发了一个Maven应用程序,当我从Netbeans运行它时,它运行良好,但当我尝试使用jar文件时,它生成了以下错误: 组织。阿帕奇。cxf。服务工厂ServiceConstructionException:无法解析null“”的绑定。 我认为我的文件配置不正确。

  • 我遇到了一个问题: 有一个数据库,可以通过sqlDeveloper工具连接 但是我想使用c3p0将数据库与jdbcurl连接: JDBC:Oracle:thin:@ 2 . 2 . 6 . 11:2709:HL . webtest . com 获取这些错误:WARN-com . m change . v2 . resource pool . basicresourcepool$acquire ta

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes

  • 本文向大家介绍如何使用HTML5地理位置查找位置?,包括了如何使用HTML5地理位置查找位置?的使用技巧和注意事项,需要的朋友参考一下 HTML5 Geolocation API使您可以与自己喜欢的网站共享位置。JavaScript可以捕获您的纬度和经度,并且可以发送到后端Web服务器,并进行精美的位置感知操作,例如查找本地商家或在映射上显示您的位置。 地理位置API使用全局导航器对象的新属性,即

  • 我正在尝试使用雅虎气象服务的以下HTTPSendpoint: 雅虎天气服务API 我正在根据API进行一些特殊查询,以获取某些参数化位置的当前天气。 位置是一个提供属性“name”的类,该属性是位置的字符串描述,例如“New York”或“Manila”。 其他类只映射返回的对象。 执行时,我得到以下HTTP响应: 这意味着我无权从我所了解的内容访问资源。 如果我只是复制,URL效果很好 雅虎天气