1. 在和風天氣官網註冊賬號 , 然後申請一個key , 注意類型一定要是android sdk , 這個key只能在指定包名裏面的SDK使用 , 用瀏覽器會返回錯誤 !!!
2. 下載和風天氣的SDK https://dev.heweather.com/docs/sdk/android , 然後將SDK導入到你的項目工程裏面
3. 使用方法 :
獲得你的賬號的username和key
因爲要聯網 , 所以要在AndroidManifest裏面聲明聯網權限 , 不然會出錯!!!!!
package com.example.myweather;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.google.gson.Gson;
import interfaces.heweather.com.interfacesmodule.bean.Code;
import interfaces.heweather.com.interfacesmodule.bean.Lang;
import interfaces.heweather.com.interfacesmodule.bean.Unit;
import interfaces.heweather.com.interfacesmodule.bean.weather.now.Now;
import interfaces.heweather.com.interfacesmodule.bean.weather.now.NowBase;
import interfaces.heweather.com.interfacesmodule.view.HeConfig;
import interfaces.heweather.com.interfacesmodule.view.HeWeather;
public class MainActivity extends AppCompatActivity {
private final static String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWeatherFromHeAPI();
}
private void getWeatherFromHeAPI(){
/* 在這裏填入上面的username和key */
HeConfig.init("Your username", "Your key");
HeConfig.switchToFreeServerNode();
HeWeather.getWeatherNow(MainActivity.this, "CN101010100", Lang.CHINESE_SIMPLIFIED , Unit.METRIC , new HeWeather.OnResultWeatherNowBeanListener() {
@Override
public void onError(Throwable e) {
Log.i(TAG, "Weather Now onError: ", e);
}
@Override
public void onSuccess(Now dataObject) {
/* 下面打印出來獲得的json數據 */
Log.i(TAG, " Weather Now onSuccess: " + new Gson().toJson(dataObject));
//先判斷返回的status是否正確,當status正確時獲取數據,若status不正確,可查看status對應的Code值找到原因
if ( Code.OK.getCode().equalsIgnoreCase(dataObject.getStatus()) ){
//此時返回數據
Log.d(TAG, "get data successful");
/* 此時now就是獲得的數據類 , 這是和風SDK的自定義類 */
NowBase now = dataObject.getNow();
} else {
//在此查看返回數據失敗的原因
String status = dataObject.getStatus();
Code code = Code.toEnum(status);
Log.d(TAG, "failed code: " + code);
}
}
});
}
}
結果