Android手机集成天气预报功能方案:全国天气预报API调用

今天要分享的是Android手机设备集成天气预报功能的方案。我采用的方案是使用聚合数据上的全国天气预报API。如需要,可申请:https://www.juhe.cn/docs/api/...
实现步骤:
1.到聚合数据官网上注册,然后申请申请全国天气预报SDK数据,生成AppKey。
2.配置工程,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libsarmeabi目录下,如图:
Android手机集成天气预报功能方案:全国天气预报API调用_第1张图片
3.根据接口说明文档找到以下方法:

/**  
     * 根据城市名查询天气  
     *   
     * @param cityname  
     *            城市名,如:"苏州"  
     * @param format  
     *            未来6天预报(future)两种返回格式,1或2,默认1  
     *  
     * @param jsonCallBack  
     *   
     */  
    public void getByCitys(String cityname, int format, JsonCallBack jsonCallBack) /**  
     * 天气种类及标识列表  
     *   
     * @param jsonCallBack  
     *   
     */  
    public void getUni(JsonCallBack jsonCallBack) /**  
     *   
     * 根据IP查询天气  
     *   
     * @param ip  
     *            ip地址,如:58.215.185.154  
     * @param format  
     *            未来6天预报(future)两种返回格式,1或2,默认1  
     * @param jsonCallBack  
     *   
     */  
    public void getByIP(String ip, int format, JsonCallBack jsonCallBack)/**  
     *   
     * 根据GPS坐标查询天气  
     *   
     *   
     * @param lon  
     *            经度  
     * @param lat  
     *            纬度  
     * @param format  
     *            未来6天预报(future)两种返回格式,1或2,默认1  
     * @param jsonCallBack  
     *   
     */  
    public void getByGEO(double lat, double lon, int format, JsonCallBack jsonCallBack) /**  
     * 城市天气三小时预报  
     *   
     * @param cityname  
     * @param jsonCallBack  
     *   
     */  
    public void getForecast3h(String cityname, JsonCallBack jsonCallBack) /**  
     * 支持城市列表  
     *   
     * @param jsonCallBack  
     */  
    public void getCities(JsonCallBack jsonCallBack)  

4.程序中调用方法
首先,在AnroidManifest.xml中添加权限

  
      
      
      
      
      

在application标签内部加入你申请的openid

  

在使用前需要调用一次初始化方法

CommonFun.initialize(getApplicationContext());  

导入相关包

impimport com.thinkland.juheapi.common.CommonFun;import   
com.thinkland.juheapi.common.JsonCallBack;import   
com.thinkland.juheapi.data.weather.WeatherData  

调用方法

//根据城市名/id查询天气  
        WeatherData weatherData = WeatherData.getInstance();  
        weatherData.getByCitys("苏州", 1, new JsonCallBack() {  
  
            @Override  
            public void jsonLoaded(JSONObject arg0) {  
                // TODO Auto-generated method stub  
                try {  
                    int code = arg0.getInt("resultcode");  
                    if (code == 200) {  
                        JSONObject resultJson = arg0.getJSONObject("result");  
                    }  
                } catch (JSONException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
        });  

你可能感兴趣的:(天气预报api,android)