合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
此版本文档已归档不再维护,推荐您使用最新版本。
在调用天气感知能力时,开发者需要先在Manifest中指定相应的权限。
- <!-- 位置权限,此权限为敏感权限,声明后还需在代码中动态申请 -->
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
使用天气状态感知能力,除需要导入情景感知服务的公共能力类外,还需要导入天气状态相关的类。
- import com.huawei.hmf.tasks.OnFailureListener;
- import com.huawei.hmf.tasks.OnSuccessListener;
- import com.huawei.hms.kit.awareness.Awareness;
- //导入天气相关快照类
- import com.huawei.hms.kit.awareness.capture.WeatherStatusResponse;
- import com.huawei.hms.kit.awareness.status.WeatherStatus;
- import com.huawei.hms.kit.awareness.status.weather.Situation;
- import com.huawei.hms.kit.awareness.status.weather.WeatherSituation;
1. 获取Awareness Kit的“Capture Client”。
2. 通过“Capture Client”调用状态查询能力接口查询情景状态。
3. 监听情景感知服务结果返回,进行应用的业务处理。
- Awareness.getCaptureClient(this).getWeatherByDevice()
- .addOnSuccessListener(new OnSuccessListener<WeatherStatusResponse>() {
- @Override
- public void onSuccess(WeatherStatusResponse weatherStatusResponse) {
- WeatherStatus weatherStatus = weatherStatusResponse.getWeatherStatus();
- WeatherSituation weatherSituation = weatherStatus.getWeatherSituation();
- Situation situation = weatherSituation.getSituation();
- // 更多返回的天气数据信息可参考华为开发者文档
- String weatherInfoStr = "City:" + weatherSituation.getCity().getName() + "\n" +
- "Weather id is " + situation.getWeatherId() + "\n" +
- "CN Weather id is " + situation.getCnWeatherId() + "\n" +
- "Temperature is " + situation.getTemperatureC() + "℃" +
- "," + situation.getTemperatureF() + "℉" + "\n" +
- "Wind speed is " + situation.getWindSpeed() + "km/h" + "\n" +
- "Wind direction is " + situation.getWindDir() + "\n" +
- "Humidity is " + situation.getHumidity() + "%";
- Log.i(TAG, weatherInfoStr);
- }
- })
- .addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(Exception e) {
- Log.e(TAG, "get weather failed");
- }
- });