簡單對接和風天氣
今天一個初學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.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