temi 使いこなしガイドby iPresence

開発者向け:temi SDK

temi SDK は、temi 上で動く Android アプリから、temi の移動、画面、音声、センサーの情報などを扱うための公式 SDK です。このページでは、SDK でできることと、開発から temi Store での配布までの流れを説明します。

このページは、iPresence が独自に整理した資料です。機能の有無や動作を保証するものではありません。正式な仕様は、メーカーが公開している temi SDK(GitHub)を正としてください。

例:登録地点「受付」へ移動して話す(Kotlin)
// temi の Robot インスタンスを取得
val robot = Robot.getInstance()

// 登録地点へ移動
robot.goTo("受付")

// 到着したら話す(移動状態のイベント)
override fun onGoToLocationStatusChanged(
    location: String, status: String,
    descriptionId: Int, description: String
) {
    if (status == "complete") {
        robot.speak(TtsRequest.create("いらっしゃいませ", false))
    }
}
概略を示す例です。正確な書き方は公式 GitHub のサンプルを参照してください。

SDK でできること

SDK は、temi の OS が管理する機能を、アプリから呼び出すためのものです。モーターやセンサーを直接制御するものではありません。安全や安定に関わる制御は temi の OS が行います。

分野できることSDK の範囲外
移動登録地点への移動、移動の開始・完了・中断・エラーの取得、複数地点の順番の移動(アプリ側で制御)、追従モードの開始・停止、その場で向きだけ人を追う動きの開始・停止、マップ名と現在位置の取得マップの作成・編集、段差の乗り越え、屋外の走行、エレベーターの操作(外部との連携が必要)
画面通常の Android アプリと同じ画面表示(ボタン、画像、動画、WebView など)、タッチ操作の取得、全画面表示、ステータスバー・ナビゲーションバーの表示制御、キオスクモード(ホームへの戻りや他アプリの起動、設定画面へのアクセスを制限)—
音声文字列の読み上げ(言語の指定、開始・終了の制御)、「ヘイ、temi」の検知と音声入力の開始・終了のイベント取得自然言語の理解(高度な対話には外部サービスとの連携が必要)
状態・センサーバッテリー残量、充電状態、現在位置、動作状態、人の検知、カメラ映像(Android の Camera API)、マイク入力(Android の標準 API)LiDAR や深度センサーの生データの取得、センサーの精度の制御
イベント移動の開始・完了・失敗、人の検知・見失い、タッチ、バッテリー残量の変化、充電の開始・終了、音声入力の開始・終了、遠隔通話の開始・終了—
通話通話の開始・終了、通話状態の取得、通話の開始・終了のイベント取得遠隔操作の画面や通信処理そのものの実装(temi 標準の機能を使います)

開発に必要なもの

開発環境
Android Studio、Java または Kotlin
SDK
公式 GitHub から取得する AAR 形式のライブラリ
temi の実機
エミュレーターは提供されていないため、動作確認には実機が必要です。
契約
SDK の機能を使える契約が必要です。ご契約の内容は、ご購入の販売店にご確認ください。
開発者登録
temi Store でアプリを公開する場合に必要です。費用はかからず、どなたでも登録でき、法人登録も不要です。登録前に開発者プログラム規約を確認してください。

開発の手順

Android アプリの開発経験がある方向けの流れです。

  1. プロジェクトを用意する

    Android Studio で、通常の Android アプリのプロジェクトを用意します。新規でも既存のプロジェクトでも構いません。

  2. SDK を追加する

    Gradle に temi SDK の依存関係を記述して Sync し、ビルドが通ることを確認します。

  3. AndroidManifest を設定する

    アプリの用途に合わせて、必要な権限(INTERNET、RECORD_AUDIO、CAMERA など)を最小限だけ宣言します。

  4. Robot を初期化する

    起動する Activity(または Application)で temi の Robot インスタンスを取得します。

  5. イベントのリスナーを登録する

    移動状態、人の検知、充電状態、通話状態など、必要なイベントのリスナーを、Activity のライフサイクルに合わせて登録します。

  6. temi の機能を呼び出す

    SDK の API で、移動、読み上げなど必要な操作を実装します。

  7. キオスクモードを設定する(必要な場合)

    専用端末として運用する場合は、ホームへの戻りの制限、全画面表示などを設定し、常に前面で動く状態にします。

  8. APK をビルドする

    通常の Android アプリと同じく、Debug または Release の APK を作ります。

  9. 実機にインストールする

    temi の実機にインストールし、画面の表示、権限の許可、SDK の呼び出しが動くことを確認します(実機へのインストール)。

  10. 実機でデバッグする

    Logcat などでログを確認し、イベントの受信、API の呼び出し、例外を確認しながら修正します。必要に応じて Release ビルドでも確認します。

実機へのインストール

開発中のアプリは、ADB または USB メモリで temi に直接インストールします。

ADB
temi の「設定」>「temi 開発者ツール」で ADB ポートを開き、temi と同じネットワークにあるパソコンから接続します。temi の IP アドレスは、同じ画面の右上に表示されます。
USB メモリ
APK を入れた USB メモリを temi の USB ポートに差してインストールします。

temi Store での配布

完成したアプリは、temi Store に提出して配布できます。

提出の要件

署名
release 署名(会社の署名鍵)での提出は必須ではありません。
バージョンコード・パッケージ名
制限はありません。

審査

提出したアプリは、temi 社のチームが実際に動かして、不適切なコンテンツ、バグ、異常な動作がないかを確認します。問題がなければ、通常は稼働日で1週間以内に承認されます。

配布先を限定する

アプリを非公開に設定すると、特定のリンクからだけアクセスできるようにできます。一般には公開せず、関係者の temi だけに配布したい場合に使います。

シリアル番号を指定した配布はできません

temi のシリアル番号を指定して配布する機能や、temi センターからアプリを配布する機能はありません。

temi に入れたアプリの確認と、アプリへの権限の付与は、本体の使い方 ガイド9を参照してください。

アプリの更新

配布の仕組み
更新したアプリを temi Store に公開すると、電源が入っていてネットワークにつながっている temi で、0:00 に自動で更新されます。
元に戻す
以前のバージョンに戻す(ロールバックする)方法はありません。
公開前に、検証用の temi で動作を確認してください

更新は夜間に自動で配られ、元に戻せません。問題が見つかった場合は、修正したバージョンを公開し直す必要があります。公開する前に、ADB でインストールした検証用の temi で十分に確認してください。