我是开发android应用程序的新手。我正在尝试做的是一个按钮点击事件,它将找到您的当前位置。然后,它将显示城市名称和当前天气。我计划使用weather2作为一个应用程序接口。无论如何,我没有一个最模糊的想法来做这件事,我搜索了教程,所有我能找到的是位置管理器的使用,这导致了延迟和经度以及谷歌地图。谁能告诉我怎样才能用gps来代替API?
发布于 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可以简化这一过程。)
对不起,您必须用实际的句号替换‘点’,因为我的名气很低:-)
https://stackoverflow.com/questions/9455683
复制相似问题