和風天氣API接口獲取天氣數據 android端

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

  結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章