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);
}
}
});
}
}
结果