WeatherHandler.java
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;
}
}
}