以AI智能语音集成为例:百度语音识别android 及IOS demo下载地址。
SDK的集成包含两个部分:
1.集成Native SDK
2. 创建Native 模块的Flutter Plugin(需要用到Flutter 的Channel)

1. Android集成

需要配置到的文件:

  • AndroidManifest.xml
  • proguard-rules.pro
  • build.gradle
  1. 创建Android 的module
    选择Android library
    flutter中Android和iOS SDK的集成_xml创建包名,点击finish完成
    flutter中Android和iOS SDK的集成_android_02
  2. 然后开始添加百度语音sdk
  • 在libs下添加百度语音依赖的jar包:
    flutter中Android和iOS SDK的集成_ios_03

  • 添加jniLibs架构文件,并且删除armeabi、armeabi-v7a文件夹(flutter SDK没有这两个架构的文件),架构文件中保留libBaiduSpeechSDK.so、libvad.dnn.so两种类型。
    flutter中Android和iOS SDK的集成_百度_04

  • 添加混淆:
    proguard-rules.pro文件中添加: -keep class com.baidu.speech.**{*;}

  • 声明依赖的权限:
    android/asr_plugin/src/main/AndroidManifest.xml 文件下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.asr_plugin">
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application>
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />

        <meta-data android:name="com.baidu.speech.APP_ID"
            android:value="23795898" />
        <meta-data
            android:name="com.baidu.speech.API_KEY"
            android:value="C0ZUM1QwlfiWxPDy8KpjITr1" />
        <meta-data
            android:name="com.baidu.speech.SECRET_KEY"
            android:value="3rQQRHWnzsDNYRcM4QrB8jNrkVPaL0K4" />
    </application>
</manifest>
  • 为android工程依赖plugin
    打开项目结构 Project Structure,为app依赖添加百度语音插件
    flutter中Android和iOS SDK的集成_ios_05
    没问题,就运行。

2. iOS集成

需要配置的文件:

  • 添加静态库
  • 添加所需资源
  • 添加Framework
    先创建plugin Group。
  1. 添加静态库
    将IOS demo中的BDSClientLib/libBaiduSpeechSDK.a 添加到 plugin下:
    flutter中Android和iOS SDK的集成_xml_06
  2. 添加所需资源
  • 将开发包中的BDSClientResource/ASR/BDSClientResources 目录以 create folder reference添加到工程资源Group中(注意: 使用create group不能生效)。
    flutter中Android和iOS SDK的集成_android_07

  • 将开发包中的BDSClientResource/ASR/BDSClientEASRResources 目录以 create group添加到工程目录中
    flutter中Android和iOS SDK的集成_xml_08

  1. 添加Framework
    flutter中Android和iOS SDK的集成_flutter_09
  2. 添加语音权限
    Privacy - Microphone Usage Description
    flutter中Android和iOS SDK的集成_百度_10
    没问题,就运行。