话不多说,直接上步骤
第一步:去官网下载SDK传送门
下载好了之后把jar包放入libs文件中并且引用,引用成功之后会有如下显示
build.gradle中的dependencies会自动出现这行代码
继续在app的build.gradle中添加引用
implementation 'com.squareup.okhttp3:okhttp:3.9.0'
implementation 'com.google.code.gson:gson:2.6.2'
第二步:在和风天气官网申请项目username和key,没账号的先注册一个
填入KEY和包名,KEY类型选择Android SDK (免费项目数量达到上限了,所以下图是我已有项目的样式图)
第三步:接下来就是在acty中写代码了
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cameraimage);
mtvWeather= findViewById(R.id.textView);
//刚刚创建项目成功之后显示出来的username和key
HeConfig.init("username", "key");
HeConfig.switchToFreeServerNode();
//CN101190101是城市编号,例如CN101190101代表的就是南京的编号,查询城市编号可以去和风天气官网查
HeWeather.getWeatherNow(MainActivity.this, "CN101190101", new HeWeather.OnResultWeatherNowBeanListener() {
@Override
public void onError(Throwable e) {
Log.i(TAG, "Weather Now onError: ", e);
}
@Override
public void onSuccess(Now dataObject) {
Log.i(TAG, " Weather Now onSuccess: " + new Gson().toJson(dataObject));
//先判断返回的status是否正确,当status正确时获取数据,若status不正确,可查看status对应的Code值找到原因
if (Code.OK.getCode().equalsIgnoreCase(dataObject.getStatus())) {
//此时返回数据
NowBase now = dataObject.getNow();
String a = now.getCond_txt();
String b = now.getTmp();
// String c =now.getVis();
mtvWeather.setText("南京 " + a + " " + b + "℃");
} else {
//在此查看返回数据失败的原因
String status = dataObject.getStatus();
Code code = Code.toEnum(status);
Log.i(TAG, " " + code);
}
}
});
}
搞定。。
忘了说了,,要在AndroidManifest中添加权限!!!!!!!!!
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />