开发你的第一个机器人应用

准备开发环境

基于 Cruzr 开发机器人应用与开发普通 Android 应用并无二致,均采用 Android Studio IDE 进行开发。请前往 Android 官方网站下载Android Studio并安装。

创建项目

打开安装好的 Android Studio,参考 Android 官方指南 创建 Android 应用项目

添加依赖库

添加共享库的声明

打开 app/src/main/AndroidManifest.xml 文件,在 <application> 标签内添加使用 Cruzr 共享库的声明。

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <application>
        <uses-library
            android:name="com.ubtrobot.rosa"
            android:required="true"/>
    </application>
</manifest>

引入SDK包

拿到Cruzr SDK(cruzr.jar) ,在app目录下创建 cruzr-libs目录,将jar包放入该目录下。

打开app/build.gradle文件,在dependencies块内添加Cruzr依赖库

allprojects {
    repositories {
        flatDir {
            dirs 'cruzr-libs'
        }
    }
}

dependencies {
     compileOnly files('cruzr-libs/cruzr.jar')
}

在 Android Studio 工具条上找到 Sync Project with Gradle Files按钮,点击执行同步操作。同步完毕后,便可使用 Cruzr 库中的 API。

注: Cruzr SDK 在系统内置最新版本, 开发者仅仅使用下载的 SDK 作为编译使用, 这样兼容性更稳定。

配置权限

基于 Cruzr 开发机器人应用,需要在 AndroidManifest 中声明必要的权限以及 Android 应用组件。 打开app/src/main/AndroidManifest.xml文件,在 <manifest>标签内添加调用 Cruzr API 的权限。

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <uses-permission android:name="com.ubtrobot.permission.ROBOT" />
</manifest>

SDK 初始化

创建 Appication 的子类,并将类名设置到AndroidManifest<application> 标签的 android:name 特性上

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    ...
    <application android:name=".YourApp">
        ...
    </application>
</manifest>

在创建的 Application 子类的 onCreate方法内,调用 Cruzr 的初始化方法。

public class YourApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        Robot.initialize(this);
    }
}

让机器人说"Hello"

Cruzr 以系统服务的形式提供多个模块的基础功能,让我们先试一试调用语音服务的语音合成 API让机器人说出 "Hello"。 打开项目中预先创建好的 app/src/main/java/…/MainActivity.java 文件,在 onCreate方法中添加以下代码:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SpeechManager speechManager = Robot.globalContext()
                .getSystemService(SpeechManager.SERVICE);
        speechManager.synthesize("Hello");
    }
}

安装并运行应用,参考 Android 官方指南 "Run your app"文档 的"Run on a real device"章节,执行相应操作,让你的第一个机器人应用在机器人设备上运行起来。如果一切正常,你将听到机器人说出"Hello"。

下一步

上面的例子让机器人应用启动的时候执行了说“Hello”的行为,实际情况下,是用户的指令让机器人执行行为的。skill 是 Cruzr 用于接收用户指令并执行行为的组件,首先应该做到熟练地实现一个 skill。请查看 create your first skill 章节。