WeatherHandler.java 1.6 KB
package com.ys.yslibrary.bean;

import android.Manifest;

import org.json.JSONArray;
import org.json.JSONObject;

/**
 * 天气技能处理,高德地图API调用和上传位置信息示例
 */

public class WeatherHandler extends IntentHandler {
    private static boolean notified = false;

    @Override
    public Answer getFormatContent(SemanticResult result) {
        Answer answer = null;
        if (notified) {
            answer = new Answer(result.answer);
            answer.setAnswerType(Answer.TYPE_WEATHER);
            return answer;
        } else {
            StringBuilder builder = new StringBuilder(result.answer);
            JSONArray slots = result.semantic.optJSONArray("slots");
            for (int index = 0; index < slots.length(); index++) {
                JSONObject item = slots.optJSONObject(index);
                if (item != null && item.optString("name") != null && item.optString("name").contains("location")) {
                    // 问法意图中不包含具体的城市名,提示可使用定位让城市信息更准确
                    if (item.optString("value").contains("CURRENT_CITY")) {
                        builder.append(NEWLINE);
                        builder.append(NEWLINE);
                        builder.append("<a href=\"use_loc\">使用定位让天气信息更准确</a>");
                        notified = true;
                        break;
                    }
                }
            }
            answer = new Answer(result.answer, result.answer);
            answer.setAnswerType(Answer.TYPE_WEATHER);
            return answer;
        }
    }

}