我在youtube上找了一个speech to text的教程,在模拟机上运行会跳过录音部分,
直接显示“try again”,在华为荣耀8实机运行会catch到ActivityNotFoundException。
实机会在点击button后显示"intent problem"。
这边我有加上internet 和 audio record的permission。
有朋友说google api 在build.gradle里compile一下就可以了,我也没有找到对应的api。
有没有大佬帮忙看一下,有任何可能的原因都请说一下,或者有更好的源码教程也请分享一下。
在这里先谢谢了。
关于Android Studio使用google api语音识别的应用
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- jhgjdfhre 2018-03-13 02:56关注
在6.0以前的系统,都是权限一刀切的处理方式,只要用户安装,Manifest申请的权限都会被赋予,并且安装后权限也撤销不了。
Android 6.0 采用新的权限模型,只有在需要权限的时候,才告知用户是否授权;是在runtime时候授权,而不是在原来安装的时候 ,同时默认情况下每次在运行时打开页面时候,需要先检查是否有所需要的权限申请。
可以参考 https://www.cnblogs.com/whycxb/p/6818685.html
speech to text 需要权限 android.permission.RECORD_AUDIO
private static final int REQUEST_AUDIO = 0;
@Override public void onClick(View v) { // 在源文件的此处添加下列代码 if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { { // BEGIN_INCLUDE(camera_permission_request) if (shouldShowRequestPermissionRationale(android.Manifest.permission.RECORD_AUDIO)) { showMessageOKCancel("You need to allow access to Contacts", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { requestPermissions( new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_AUDIO); } }); } else { //这里就会弹出对话框 requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO}, REQUEST_AUDIO); } } } } // 这是自定义选择权限对话框,会弹出来让你选择启动还是拒绝 private void showMessageOKCancel(String message, DialogInterface.OnClickListener okListener) { new AlertDialog.Builder(this) .setMessage(message) .setPositiveButton("OK", okListener) .setNegativeButton("Cancel", null) .create() .show(); } // 选择权限后的回调 @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case REQUEST_AUDIO: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "AUDIO Permited!", Toast.LENGTH_SHORT) .show(); } break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报