[TOC]
## Step 1 導入SDK
將在官網下載的Android SDK 壓縮包中libs目錄下所有子文件拷貝至Android工程的libs目錄下。如下圖所示:

注:
1. Android SDK提供了各個平臺libmsc.so文件,開發者可以根據工程需求選取適當平臺庫文件進行集成。
2. 如果您需要將應用push到設備使用,請將設備cpu對應指令集的libmsc.so push到/system/lib中。
## Step 2 添加用戶權限
在工程 AndroidManifest.xml 文件中添加如下權限
~~~
<!--連接網絡權限,用于執行云端語音能力 -->
<uses-permission android:name="android.permission.INTERNET"/>
<!--獲取手機錄音機使用權限,聽寫、識別、語義理解需要用到此權限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!--讀取網絡信息狀態 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--獲取當前wifi狀態 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--允許程序改變網絡連接狀態 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<!--讀取手機信息權限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--讀取聯系人權限,上傳聯系人需要用到此權限 -->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!--外存儲寫權限,構建語法需要用到此權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--外存儲讀權限,構建語法需要用到此權限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--配置權限,用來記錄應用配置信息 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!--手機定位信息,用來為語義等功能提供定位,提供更精準的服務-->
<!--定位信息是敏感信息,可通過Setting.setLocationEnable(false)關閉定位請求 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--如需使用人臉識別,還要添加:攝相頭權限,拍照需要用到 -->
<uses-permission android:name="android.permission.CAMERA" />
~~~
注意:如需在打包或者生成APK的時候進行混淆,請在proguard.cfg中添加如下代碼:
~~~
-keep class com.iflytek.**{*;}
-keepattributes Signature
~~~
## Step 3 初始化
初始化即創建語音配置對象,只有初始化后才可以使用MSC的各項服務。建議將初始化放在程序入口處(如Application、Activity的onCreate方法),初始化代碼如下:
~~~
// 將“12345678”替換成您申請的APPID,申請地址:http://www.xfyun.cn
// 請勿在“=”與appid之間添加任何空字符或者轉義符
SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");
~~~
createUtility方法的第二個參數為傳入的初始化參數列表,可配置的參數如下:
|參數|說明|必填|
| :---: | --- | --- |
|appid|8位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”。