2012-02-26 33 views
0

我對開發android應用程序相當新。我想要做的是一個按鈕點擊事件,它會發現你的當前位置。它會顯示城市名稱和當前天氣。我打算將weather2用作API。無論如何,我沒有得到最微不足道的想法做到這一點,我已經搜索了教程,我可以找到的所有位置管理器的使用導致latatude和longatude隨着谷歌地圖。任何人都可以告訴我如何使用gps來使用API​​嗎?卡住天氣應用程序位置管理器

回答

2

你的問題並不完全清楚。你不能使用GPS來使用API​​,你需要編寫代碼來使用API​​ ...

這就是說,它看起來像使用weather2只需要發送一個HTTP GET請求給它。要真正調用他們的客戶端,您將使用HttpClient(包含在Android的庫中)。你可以找到的示例代碼一些位在這裏做到這一點:

timewasted點網/ P = 127

你給它會遵循這些準則的查詢:

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

之一您可以發送到此API的參數是您當前的經度和緯度。您可以使用locationmanager來獲取此信息。您將執行Context.getSystemService來獲取LocationManager對象,然後請求它通知您您在哪裏。如果更新從未發生(例如,如果用戶位於建築物內部,則可能發生這種情況),您也可以使用LocationManager.getLastKnownLocation。你可以在這裏找到一個簡單的LocationManager教程:

Blogoscoped的點com /存檔/ 2007-11-19 - n27.html

你找回你的聽衆location對象會告訴你的經度和緯度是你想要的,你可以把它打包成查詢發送到weather2。例如,這裏是一個查詢字符串,你可以發送到weather2(使用的HttpClient和GET請求我上面提到的):

http://www.myweather2.com/developer/forecast.ashx?uac= &查詢= 24.15,56.32 & temp_unit = F

在這裏,您可以取代這些座標與你從LocationManager獲取的信息相反。

請記住,我給出的鏈接是而不是完全正確。您不應該在應用程序的主線程中執行網絡操作。相反,你應該像AsyncTask,服務等等的東西執行。然後使用信使之間談話(使用AsyncTask簡化了這一點,但是..)

對不起,你將不得不取代'點與實際時期,因爲我有一個低信譽:-)

+0

我想知道是否有任何服務,檢測是否有黃昏在某些位置,你聽說過任何? – drupality 2016-08-22 16:53:44

+0

或當天幾小時是日落 – drupality 2016-08-22 17:01:49

+0

好的,我發現:http://openweathermap.org/current – drupality 2016-08-22 17:03:21