簡單對接和風天氣
今天一個初學Android的同學問我要Android 第一行代碼的第二版,聊了聊,是爲了對接和風天氣!不知道如何下手!
在這裏簡單的說一下!希望可以幫助到初學的同學們!
代碼和錄屏都在這裏
鏈接:https://pan.baidu.com/s/1LtyYmZ9TODS52LCq-93KRg
提取碼:zm8h
第一步是註冊一個和風天氣的賬號,然後創建一個自己項目!
然後是下載和風天氣的SDK
下載好了之後,把下載好的jar包複製到項目的lab裏面!
複製進來之後點擊右鍵選擇“Add As Library…” 會在build.gradle文件中生成
“implementation files(‘libs/HeWeather_Public_Android_V3.3.jar’)”
接着我們需要添加權限
android.permission.INTERNET 這個是網絡請求的權限必須添加
下面的可加可不加
android.permission.READ_PHONE_STATE 訪問設備狀態
android.permission.ACCESS_WIFI_STATE 訪問WIFI狀態
android.permission.ACCESS_COARSE_LOCATION 訪問網絡定位
android.permission.ACCESS_FINE_LOCATION 訪問GPS
有了權限之後,我們還要導入okhttp網絡請求框架和Gson 解析json框架
//okhttp 網絡訪問
implementation 'com.squareup.okhttp3:okhttp:3.14.1'
//json解析
implementation 'com.google.code.gson:gson:2.8.5'
下面我們開始獲取數據
第一步:進行賬戶初始化(全局執行一次即可),最好寫在MyApplication中
HeConfig.init("HE1234567890", "237sbc65des7abc8ase0as0cb9c8c7");
第二步:選擇服務域名,一般我們選擇免費的
//免費節點服務域名
HeConfig.switchToFreeServerNode();
//付費節點服務域名
HeConfig.switchToCNBusinessServerNode();
第三步:調用相應的接口
我們使用getWeatherNow來獲取一下
HeWeather.getWeatherNow(MainActivity.this, new HeWeather.OnResultWeatherNowBeanListener() {
@Override
public void onError(Throwable throwable) {
Log.i("weather", "Weather Now onError: ", throwable);
}
@Override
public void onSuccess(Now now) {
Log.i("weather", " Weather Now onSuccess: " + new Gson().toJson(now));
//先判斷返回的status是否正確,當status正確時獲取數據,若status不正確,可查看status對應的Code值找到原因
if ( Code.OK.getCode().equalsIgnoreCase(now.getStatus()) ){
//此時返回數據
NowBase now2 = now.getNow();
Basic basic = now.getBasic();
String str =basic.getParent_city()+" "+ now2.getCond_txt() +" 氣溫:"+now2.getVis()+"-"+now2.getTmp();
textView.setText(str);
} else {
//在此查看返回數據失敗的原因
String status = now.getStatus();
Code code = Code.toEnum(status);
Log.i("weather", "failed code: " + code);
}
}
});
下面是獲取的數據結構
代碼和錄屏都在這裏
鏈接:https://pan.baidu.com/s/1LtyYmZ9TODS52LCq-93KRg
提取碼:zm8h