Android使用和风天气接口获取天气数据在APP中展示天气

 公司APP项目需要能能够显示当前天气,网上找了很多天气数据接口,总结下来要么收费,要么用起来不友好,最后还是用了郭霖推荐的和风天气接口


这里记录一下自己的使用过程


首先注册和风天气个人开发者,认证时间1-3天,我基本几个小时就收到了认证成功的邮件。认证开发者后可以获得中国和海外城市的7天预报、逐3小时预报、实况天气、空气质量和生活指数,对比了一下其它家,和风真是算良心接口了,虽然我只需要实况天气这一个数据~~~~


先看文档:https://www.heweather.com/documents/api/s6/weather-now 本来以为要做不少解析工作,不过竟然发现提供了现成的android sdk https://www.heweather.com/documents/sdk/android


按照官方给出的方法集成,但是无法获取到数据,经过询问客服发现需要更新sdk到1.2.2版本才能支持免费用户(穷逼很无语),在此mark一下,免费或者个人开发者务必使用1.2.2版本及以上才行


下面贴一下使用的简单过程

首先当然是引入jar包,打开上文第二个链接点击下载,然后将jar包导入到工程libs中





配置Android Manifest 添加权限,(Android 6.0以上记得动态添加权限 !!)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />


然后按照文档所说在项目的build.gradle中添加依赖


implementation 'com.squareup.okhttp3:okhttp:3.3.0'
implementation 'com.google.code.gson:gson:2.6.2'
然后在代码中配置自己注册到的key和userId
我写在了activity的onCreate()里
HeConfig.init("注册到的userId","注册到的key");

然后就可以调用接口啦~(我需要的是实况天气所以自然调getWeatherNow这个接口咯)传的参数可以自行决定,location参数如果不传的话会调用手机自带的GPS定位,在onSuccess()方法里有直接封装好的bean(简直良心啊!!!),直接获取到需要的数据就可以进行各种操作了~

HeWeather.getWeatherNow(MainActivity.this, "CN101010100", new HeWeather.OnResultWeatherNowBeanListener() {
    @Override
    public void onError(Throwable e) {
        Log.i(TAG, "onError: ", e);
    }

    @Override
    public void onSuccess(List<Now> dataObject) {
        Log.i(TAG, " Weather Now onSuccess: " + new Gson().toJson(dataObject));
    }
});

这个就是拿到数据后进行的展现了~




最后吐槽一下,不知道为啥个人开发者每天访问量14959次,而不是一个整数。。。


  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,关于Android天气接口使用,你可以按照以下步骤进行: 1. 注册和天气开发者账号,并创建应用,获取应用的Key值。 2. 在Android Studio创建一个新项目,然后在项目的build.gradle文件添加以下依赖库: ```gradle implementation 'com.squareup.okhttp3:okhttp:3.14.9' implementation 'com.google.code.gson:gson:2.8.6' ``` 3. 在代码发送HTTP请求,获取天气数据。以下是示例代码: ```java OkHttpClient client = new OkHttpClient(); String apiKey = "your_api_key"; String city = "beijing"; String url = "https://free-api.heweather.net/s6/weather/now?key=" + apiKey + "&location=" + city; Request request = new Request.Builder().url(url).build(); try { Response response = client.newCall(request).execute(); String responseData = response.body().string(); // 解析JSON数据 Gson gson = new Gson(); WeatherResponse weatherResponse = gson.fromJson(responseData, WeatherResponse.class); if (weatherResponse != null && "ok".equals(weatherResponse.getHeWeather6().get(0).getStatus())) { // 获取天气数据 String temperature = weatherResponse.getHeWeather6().get(0).getNow().getTmp(); String weatherInfo = weatherResponse.getHeWeather6().get(0).getNow().getCond_txt(); } else { // 请求失败 } } catch (IOException e) { e.printStackTrace(); } ``` 4. 解析JSON数据获取天气信息。以上面的代码为例,可以使用Gson库对JSON数据进行解析,获取温度和天气信息。 希望这些步骤能够对你有所帮助。不过需要注意的是,和天气接口使用需要符合相关的开发者协议和服务条款。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值