ActivityCompat.requestPermissions(this, toApplyList.toArray(tmpList), 123);
}
}
/**
-
权限申请回调,可以作进一步处理
-
@param requestCode
-
@param permissions
-
@param grantResults
*/
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
// 此处为android 6.0以上动态授权的回调,用户自行实现。
}
在onCreate方法中调用
initPermission();//权限请求
三、语音监听
/**
- 初始化监听器。
*/
private InitListener mInitListener = new InitListener() {
@Override
public void onInit(int code) {
Log.d(TAG, "SpeechRecognizer init() code = " + code);
if (code != ErrorCode.SUCCESS) {
showMsg(“初始化失败,错误码:” + code + “,请点击网址https://www.xfyun.cn/document/error-code查询解决方案”);
}
}
};
/**
- 听写UI监听器
*/
private RecognizerDialogListener mRecognizerDialogListener = new RecognizerDialogListener() {
public void onResult(RecognizerResult results, boolean isLast) {
printResult(results);//结果数据解析
}
/**
- 识别回调错误.
*/
public void onError(SpeechError error) {
showMsg(error.getPlainDescription(true));
}
};
/**
-
提示消息
-
@param msg
*/
private void showMsg(String msg) {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
}
里面用到一个方法,用于解析监听到的结果
四、数据解析
/**
-
数据解析
-
@param results
*/
private void printResult(RecognizerResult results) {
String text = JsonParser.parseIatResult(results.getResultString());
String sn = null;
// 读取json结果中的sn字段
try {
JSONObject resultJson = new JSONObject(results.getResultString());
sn = resultJson.optString(“sn”);
} catch (JSONException e) {
e.printStackTrace();
}
mIatResults.put(sn, text);
StringBuffer resultBuffer = new StringBuffer();
for (String ke