在讯飞开发者平台上注册账号后,拿到APPID
下载SDK和demo,因为下载大多数使用Android studio进行开发, .so文件的导入如果直接放到项目的model中lib文件夹中系统无法识别(找到)对应的 .so文件,这时我们需要进行几步特殊的操作:
1、将 .so文件复制到lib文件夹中 如图所示:
2、在model层的build.gradle中,要进行项目lib目录路径的转换,在android{ } 这个位置加一句代码:
sourceSets{
main{
jniLibs.srcDirs = [ 'libs' ]//你的文件夹叫什么,这个的单引号里边就是什么
}
}
3、因为不同的手机CPU架构不同,这里尽量多导入各种CPU对应的.so文件架构
4、在完成上述操作后,APP是可以正常启动的,但是当我们在启用语音转换为文字的时候,讯飞语音的源码会报错 提示 启动录音失败 错误码20006 ,这是因为在Android5.0以后动态权限要在代码中声明,(只在清单文件中获取对应的录音,读写文件权限是没用的),所以我们需要在APP启动的时候获取这些权限,代码如下:
private voidrequestPermissions(){
try{
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.M) {
intpermission = ActivityCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
if(permission!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,newString[] {Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.LOCATION_HARDWARE,Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_SETTINGS,Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO,Manifest.permission.READ_CONTACTS},0x0010);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
@Override
public voidonRequestPermissionsResult(intrequestCode, String[] permissions,int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}