1.1. Step 1 导入SDK

将在官网下载的Android SDK 压缩包中libs目录下所有子文件拷贝至Android工程的libs目录下。如下图所示:

预备工作  - 图1

注:

  • Android SDK提供了各个平台libmsc.so文件,开发者可以根据工程需求选取适当平台库文件进行集成。
  • 如果您需要将应用push到设备使用,请将设备cpu对应指令集的libmsc.so push到/system/lib中。

1.2. Step 2 添加用户权限

在工程 AndroidManifest.xml 文件中添加如下权限

  1. <!--连接网络权限,用于执行云端语音能力 -->
  2. <uses-permission android:name="android.permission.INTERNET"/>
  3. <!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
  4. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  5. <!--读取网络信息状态 -->
  6. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  7. <!--获取当前wifi状态 -->
  8. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  9. <!--允许程序改变网络连接状态 -->
  10. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
  11. <!--读取手机信息权限 -->
  12. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  13. <!--读取联系人权限,上传联系人需要用到此权限 -->
  14. <uses-permission android:name="android.permission.READ_CONTACTS"/>
  15. <!--外存储写权限,构建语法需要用到此权限 -->
  16. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  17. <!--外存储读权限,构建语法需要用到此权限 -->
  18. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  19. <!--配置权限,用来记录应用配置信息 -->
  20. <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  21. <!--手机定位信息,用来为语义等功能提供定位,提供更精准的服务-->
  22. <!--定位信息是敏感信息,可通过Setting.setLocationEnable(false)关闭定位请求 -->
  23. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  24. <!--如需使用人脸识别,还要添加:摄相头权限,拍照需要用到 -->
  25. <uses-permission android:name="android.permission.CAMERA" />

注意:如需在打包或者生成APK的时候进行混淆,请在proguard.cfg中添加如下代码:

  1. -keep class com.iflytek.**{*;}
  2. -keepattributes Signature

1.3. Step 3 初始化

初始化即创建语音配置对象,只有初始化后才可以使用MSC的各项服务。建议将初始化放在程序入口处(如Application、Activity的onCreate方法),初始化代码如下:

  1. // 将“12345678”替换成您申请的APPID,申请地址:http://www.xfyun.cn
  2. // 请勿在“=”与appid之间添加任何空字符或者转义符
  3. SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");

createUtility方法的第二个参数为传入的初始化参数列表,可配置的参数如下:

参数说明必填
appid8位16进制数字字符串,应用的唯一标识,与下载的SDK一一对应。
usr开发者在云平台上注册的账号。
pwd账号对应的密码,与账号同时存在。
engine_mode引擎模式,可选值为:msc:只使用MSC的能力;plus:只使用语记能力;auto:云端使用MSC,本地使用语记;默认取值为auto。注:使用MSC本地功能的请设置为msc。
force_login在createUtility时会对进程名称进行检查,如果名称与应用包名不一致则不进行login操作,返回null,用以规避在子进程反复进行调用的问题。此参数设置是否强制login。默认值:false (进行检查,不强制login)。
lib_name在createUtility时会加载动态库,此时可以传入动态库名称。例如:libmsc_xxx_1072.so(xxx为您的公司名,1072为科大讯飞sdk版本号), 默认值:msc。注:如您是预装软件,为了避免动态库冲突建议修改名称。

注意:参数需要以键值对的形式存储在字符串中传入createUtility方法,以逗号隔开,如“appid=12345678,usr=iflytekcloud,pwd=123456”。