# baidu-unit-sdk **Repository Path**: zazzh/baidu-unit-sdk ## Basic Information - **Project Name**: baidu-unit-sdk - **Description**: 百度UNIT的Java SDK - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2018-03-14 - **Last Updated**: 2023-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 百度UNIT的官方SDK只有Android和IOS版本([百度UNIT SDK下载](https://ai.baidu.com/sdk#unit))。为方便java服务器端的开发调试,从安卓版本的SDK源码中剥离了UNIT相关的部分,可独立在java中运行。至于这么简单的事情百度官方为何不做,我就无法解释了。
代码是基于2018/3/13下载的安卓版SDK改造的,基本思路是删除所有与UNIT无关的部分,并稍加改造以方便使用。
绝大多数的代码都来自于百度,我只是个搬运工和粉刷匠:-) # 使用方法 1. 作为SDK嵌入纯Java项目
需要使用的主要类只有一个:UnitBot.java(其实几乎所有的改造都在这个类中)。该类中包含了获取Token、切换场景、发送指令这几个基本功能。接收指令的回调Listener需要自己实现,在发送指令前或发送时设置到UnitBot中。具体使用方法可参见项目中的JUnit代码和CmdLineChat.java。
安卓版SDK中的发送消息和接收响应处理是异步的。为方便调试,我增加了同步发送指令的函数接口,调用后会等待Listener处理完毕后,发送指令的函数才返回,这样在调试时就不用考虑多线程响应处理的问题了。 2. 快速调试UNIT
也许你只是偶尔需要一个方便的交互工具来远程连接并调试你的UNIT。此时可以使用命令行执行CmdLineChat.java,并带上三个参数:Api Key、Secret Key、Scene ID,这样就可以直接使用命令行窗口与你的UNIT进行对话。如果运行时什么参数都不带,则使用内置的百度官方某个UNIT(也是从安卓版SDK中原封不动拿来的),具体可查看代码。
控制台输出实例如下: ``` 当前使用内置百度官方UNIT机器人。如果要使用自己的UNIT,请在命令行中依次添加三个参数:API Key、Secret Key、Unit Scene ID 例: java -jar unitsdk.jar jMWIPDmK6zaxiK9KMCbb0hQl D4d5DD51gElVGkoHuoOZZfSHFDDT5K5k 3087 正在获取Token... 11:40:05.731 [main] INFO com.baidu.aip.unit.UnitBot - 等待返回Token... 11:40:06.142 [OkHttp https://aip.baidubce.com/...] INFO com.baidu.aip.unit.UnitBot - AccessToken->24.3a784ed5f5b117262c52aaca4b7f55fa.2592000.1523590806.282335-9940895 11:40:06.142 [main] INFO com.baidu.aip.unit.UnitBot - 获取Token成功,token=24.3a784ed5f5b117262c52aaca4b7f55fa.2592000.1523590806.282335-9940895 获取Token完毕。现在你可以在控制台输入指令,按回车键发送。 输入exit退出程序。 我说:你好 机器人说:你可以让我做这些事情 去扫地 定时启动 检查电量 机器人说:您好,俺是扫地机器人 我说:去扫地 机器人说:我是勤劳的小蜜蜂,我去干活了 我说:定时启动 机器人说:主人,你想让我从哪里开始打扫呢? 我说:客厅 机器人说:什么时间开始打扫? 我说:明天早上8点 机器人说:主人放心,到时会好好干活的! 我说:exit 系统:接收到退出指令,程序退出。 ```