首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Weather App location manager

使用Weather App location manager
EN

Stack Overflow用户
提问于 2012-02-27 02:07:50
回答 1查看 346关注 0票数 0

我是开发android应用程序的新手。我正在尝试做的是一个按钮点击事件,它将找到您的当前位置。然后,它将显示城市名称和当前天气。我计划使用weather2作为一个应用程序接口。无论如何,我没有一个最模糊的想法来做这件事,我搜索了教程,所有我能找到的是位置管理器的使用,这导致了延迟和经度以及谷歌地图。谁能告诉我怎样才能用gps来代替API?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-27 02:36:06

你的问题不是很清楚。你不能用GPS来使用API,你要写代码来使用API...

话虽如此,看起来使用weather2只需要向它发送一个HTTP GET请求。要真正访问他们的客户端,你需要使用一个HttpClient (包含在安卓的库中)。你可以在这里找到一些示例代码来实现这一点:

耗时的.net/?p=127

您给出的查询将遵循以下准则:

http://www.myweather2.com/developer/apis.aspx?uref=becda844-8299-4bf6-899b-d771a92b9dbf

可以发送到此API的参数之一是您当前的经度和纬度。您可以使用locationmanager来获取此信息。您将执行一个Context.getSystemService来获取LocationManager对象,然后请求它通知您所在的位置。如果更新从未发生,您也可以求助于LocationManager.getLastKnownLocation (例如,如果用户在建筑物内,则可能发生这种情况)。你可以在这里找到一个简单的LocationManager教程:

博客作用点com/archive/2007-11-19-n27.html

在侦听器中返回的Location对象将告诉您所需的纬度和经度,您可以将其打包为查询发送到weather2。例如,下面是一个可以发送给weather2的查询字符串(使用我上面提到的HttpClient和GET请求):

http://www.myweather2.com/developer/forecast.ashx?uac=&query=24.15,56.32&temp_unit=f

在这里,您可以将这些坐标替换为从LocationManager获得的坐标。

请记住,我给出的链接并不完全正确。您不应该在应用程序的主线程中执行网络操作。相反,你应该在像AsyncTask、服务等这样的东西中执行。然后使用信使在两者之间进行通信(不过,使用AsyncTask可以简化这一过程。)

对不起,您必须用实际的句号替换‘点’,因为我的名气很低:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9455683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档