简单获取天气情况
工程配置
- 解压文件,将文件夹内jar放入您的工程,并且引用
- 配置Android Manifest 添加权限
权限列表
允许连接网络 | android.permission.INTERNET |
访问GPS定位 | android.permission.ACCESS_FINE_LOCATION |
访问设备状态 | android.permission.READ_PHONE_STATE |
访问WIFI状态 | android.permission.ACCESS_WIFI_STATE |
引用库
compile 'com.squareup.okhttp3:okhttp:3.9.0' (3.12.12+)
compile 'com.google.code.gson:gson:2.6.2' (2.6.2+)
数据访问代码
日志功能
SDK 不再提供日志功能, 错误信息可由回调函数 OnError 中的 Throwable 对象提供
账户初始化
使用 SDK 时,需提前进行账户初始化(全局执行一次即可)
HeConfig.init("PublicId", "PrivateKey");
选择API服务版本
SDK 默认访问商业版服务,开发版用户可通过以下方法进行调整(全局执行一次即可)
//切换至开发版服务
HeConfig.switchToDevService();
//切换至商业版服务
HeConfig.switchToBizService();
public class MainActivity extends AppCompatActivity {
private final static String TAG="MainActivity";
private TextView tvCity,tvTianqi,tvTemp,tvFengxiang,tvFengsu,tvHum;
private String text1,text2,text3,text4,text5,text6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initWeather();
}
private void initWeather() {
HeConfig.init("ID","KEY");
HeConfig.switchToDevService();
}
private void initView() {
tvCity=findViewById(R.id.tvCity);
tvTianqi=findViewById(R.id.tvTianqi);
tvTemp=findViewById(R.id.tvTemp);
tvFengxiang=findViewById(R.id.tvFengxaing);
tvFengsu=findViewById(R.id.tvFengsu);
tvHum=findViewById(R.id.tvHum);
}
@Override
protected void onStart() {
super.onStart();
getWeather();
}
private void getWeather() {
QWeather.getWeatherNow(MainActivity.this, "101120201", Lang.ZH_HANS, Unit.METRIC, new QWeather.OnResultWeatherNowListener() {
@Override
public void onError(Throwable e) {
Log.i(TAG,"getWeather onError:"+e);
}
@Override
public void onSuccess(WeatherNowBean weatherBean) {
Log.i(TAG,"getWeather onSuccess:"+new Gson().toJson(weatherBean));
if(Code.OK==weatherBean.getCode()){
WeatherNowBean.NowBaseBean now=weatherBean.getNow();
//text2=now.getText();
text3=now.getTemp();
text4=now.getWindDir();
text5=now.getWindScale();
text6=now.getHumidity();
//tvTianqi.setText(text2);
tvTemp.setText(text3+"°C");
tvFengxiang.setText(text4);
tvFengsu.setText(text5+"级");
tvHum.setText(text6+"%");
}else {
Code code=weatherBean.getCode();
Log.i(TAG,"failed code:"+code);
}
}
});
}
}