MiRZAライブラリのバージョン: 1.2.1
MiRZAライブラリの概要
MiRZA(以降、グラスと称する)本体の各種情報を取得するためのAndroid Libraryです。
グラスと接続しているMiRZAアプリを介してデータ連携を行います。
Spaces AR SDKを組み込んだ「グラス向けアプリ」を開発する際にグラス情報を利用することを目的としたライブラリです。
※グラスとスマートフォン間の接続はMiRZAアプリが担います。
本ライブラリをグラス向けアプリに組み込むことでグラスの状態をグラス向けアプリが取得できたり、グラス向けアプリからMRモードへの切り替え指示ができるようになります。 グラス状態の確認とMRモードへの切り替え指示を組み合わせれば、MiRZAアプリを経由せずに直接グラス向けアプリを起動することができます ※。
※ スマホとグラスのペアリング処理が完了している状態である必要あり
Snapdragon Spaces AR SDK 1.0.3の環境において、下記組み合わせで問題なく動作することを確認しています。
- MiRZAアプリ:v1.00.14
- グラスソフトウェア:S240029
- ライブラリ:v1.2.0
- サンプルコード:v1.2.0
バージョン
| アプリ・ソフトウェア | 推奨バージョン |
|---|---|
| MiRZAアプリ | 1.00.15 |
| グラスソフトウェア | S240030 |
| MiRZAライブラリ | 1.2.1 |
| Snapdragon Spaces SDK | 1.0.3 |
構成
ドキュメント
パッケージを参照してください。
ライブラリの内容
- ライブラリ
mirzalibrary-1.2.1.aar
- サンプル
mirza_library-1.2.1.tgzにサンプルプロジェクトが含まれます。- Package Managerから取り込んでください。
- また、MiRZA SDKのセットアップを行う過程でMiRZAライブラリのセットアップもでき、いくつかのサンプルも利用可能です。
特徴
対象OS
- Android 13.0(API Level 33)以上を対象とします。
提供形式
- Android Library(aarファイル)
提供機能一覧
| 機能 | 種別 | 概要 |
|---|---|---|
| グラス状態 | 取得 | グラス状態には以下のデータが含まれます。 1. グラスとスマホのBluetooth接続状態 2. グラスとスマホのWi-Fi接続状態 3. MRモード利用可否 - Spacesに対応したアプリを表示する「MRモード」が利用できる状態であるかを判断します。 - 現在MRモードであるかを判断するものではありません。 |
| グラス状態 | 変化通知 | グラス状態のいずれかが変化した際に最新の状態を通知します。 |
| 電池残量 | 取得 | グラスの電池残量(パーセンテージ)を返却します。 |
| 電池残量 | 変化通知 | 残量が変化した際に最新の残量を通知します。 |
| 充電状態 | 取得 | グラスの充電状態(ON/OFF)を返却します。 |
| グラスのCPU制限レベル | 取得 | グラスのCPU制限レベルを返却します。 |
| グラスのCPU制限レベル | 変化通知 | グラスのCPU制限レベルが変化した際に最新のCPU制限レベルが通知されます。 |
| 画面点灯状態 | 変化通知 | 画面の点灯状態が変化した際に、画面の点灯状態(ON/OFF)を通知します。 |
| MRモード状態 | 取得 | MRモードであるかの状態(ON/OFF)を返却します。 |
| MRモード状態 | 変化通知 | MRモード状態が変化した際に、MRモード状態(ON/OFF)を通知します。 |
| MRモード起動 | 変更指示 | ・グラスをMRモードに切り替えます。Spacesに対応したアプリを表示するにはMRモード状態がONである必要があります。 ・すでにMRモード状態がONの場合はエラーメッセージを結果に返します。 |
| MRモード停止 | 変更指示 | ・グラスのMRモードを終了します。 ・すでにMRモード状態がOFFの場合はエラーメッセージを結果に返します。 |
| グラス電源OFF | 変化通知 | グラスの電源がOFFになった際に通知されます。 |
| グラスタッチセンサー ジェスチ ャー情報 | 変化通知 | グラスのタッチセンサーを操作した際に、操作情報を通知します。 |
| マイクモード切替 | 変更指示 | ・グラスのマイクモード切替を行います。 ・切替後のマイクモード切替状態を結果に返します。 |
| MiRZAアプリ起動 | 遷移 | ・MRモード状態がONの場合にMiRZAアプリを起動します。 - 遷移先はコントローラ画面です。 - MRモード状態がOFFの場合は遷移しません。 |
| グラスの電源ボタン2回押し | 変化通知 | グラスの電源ボタンを2回押しした際に通知されます。 |
| グラスのマイクを使用した逐次録音 | 取得 | グラスのマイクを使用した音声データを分割して逐次返却します。 |
| グラスのマイクを使用した一括録音 | 取得 | グラスのマイクを使用した音声データを録音停止時に一括で返却します。 |
| グラスとのWi-Fi通信におけるRSSIレベル | 取得 | グラスとのWi-Fi通信におけるRSSIレベル情報を返却します。 |
| グラスとのWi-Fi通信におけるRSSIレベル | 変化通知 | グラスとのWi-Fi通信におけるRSSIレベルの状態が変化した際に、RSSIレベル情報を通知します。 |
| グラスとのWi-Fi通信における接続バンド | 取得 | グラスとのWi-Fi通信における接続バンド情報を返却します。 |
| グラスとのWi-Fi通信における接続バンド | 変化通知 | グラスとのWi-Fi通信における接続バンドの状態が変化した際に、接続バンド情報を通知します。 |
MRモードとは
Snapdragon Spaces AR SDKを組み込んだグラス向けアプリを表示するためのモードです。
グラスをMRモードに切り替えてからグラス向けアプリを起動することで、グラス上にコンテンツを表示することが可能になります。
マイクモードとは
グラスでは下記4つのマイクモードを提供しています。
- 全方位集音:グラス装着者の音声と全方位の音を集音します。
- 装着者集音:グラス装着者の音声のみを集音します。
- 周囲集音:グラス周辺の音のみを集音します。装着者の音声は集音されません。
- 前方集音:グラス前方の音のみを集音します。装着者の音声は集音されません。
装着者と前方音/周囲音の距離が極端に近いと期 待動作が得られない場合がございます。 目安として、グラス装着者と前方/周囲音源(話者)の間は1m程度距離を離してのご利用を推奨致します。
本ライブラリをグラス向けアプリに組み込むことで、アプリからマイクモードを指定できるようになります。
グラスのマイクから録音する場合はグラスマイクの録音サンプルを使用するか、本ライブラリのマイク利用設定を参照ください。
プロジェクトへの組み込み
外部ライブラリとしてaarファイルをプロジェクトに取り込みます。
-
build.gradle
libsディレクトリにaarファイルを配置した例
dependencies {
implementation files('libs/mirzalibrary-1.2.1-release.aar')
}
動作前提
データ連携を行うにはスマートフォンにv1.00.05以上のMiRZAアプリがインストールされている必要があります。
v1.00.05未満の場合、不整合のエラーが返却されるため、利用者に対してMiRZAアプリを最新バージョンにアップデートすることを促してください。
インストールされていない場合はAPI実行時にエラーが返却されます。
また、
- グラスがペアリングされていないまたは接続が完了していない場合もエラーが返却されます。
- BluetoothとWi-Fiの両方がつながっているときにのみ動作します。どちらかがつながっていない場合はエラーとなります。
詳細はResult.Stateをご確認ください。
グラス向けアプリ対応
本ライブラリを組み込むことでAndroidManifest.xmlに専用タグを自動設定します。
MiRZAアプリのメインランチャー上のアプリ一覧に「グラス向けアプリ」として表示されるようになります。
- Spaces AR SDK for Unityの利用が必要です。
利用方法
基本的な利用手順
-
MirzaLibraryクラスを初期化 -
本ライブラリのLogcat出力設定(デフォルトは出力なし)
-
MiRZAアプリとの接続状態を監視
-
モニタリング開始(MiRZAアプリと連携開始)
-
各種状態取得機能を実行
-
モニタリング停止(MiRZAアプリと連携終了)
コード例
// ライブラリ初期化
val mirza = MirzaLibrary()
// Logcatを出力
mirza.setLogEnable(true)
// MiRZAアプリとの接続状態を監視
mirza.setServiceStateCallback { state ->
// 接続状態
}
// モニタリング開始
mirza.startMonitoring(this)
// 各種取得処理
....
// モニタリング停止
mirza.stopMonitoring(this)
取得
状態取得APIには同期取得と非同期取得があります。どちらも取得できるデ ータはResultクラスです。
コード例
// (1) グラス状態を取得
val result: Result<GlassStatus> = mirza.glassStatus
// (2) グラス状態を取得(非同期)
mirza.getGlassStatusAsync(object : GlassStatusCallback {
override fun onGlassStatus(result: Result<GlassStatus>) {
// グラス状態結果
}
})
変化通知
状態の変化を通知を受け取るには各データ毎にコールバック登録を行います。通知されるデータはそれぞれのデータクラスです。
コード例
// グラス状態の変化通知
mirza.setGlassStatusCallback(object : GlassStatusCallback {
override fun onGlassStatusChanged(status: GlassStatus) {
// 変化したグラス状態
}
})
// 電池残量の変化通知
mirza.setBatteryLevelCallback(object : BatteryLevelCallback {
override fun onBatteryLevelChanged(level: Int) {
// 変化した電池残量
}
})
接続シーケンス
① Callbackの設定とモニタリングの開始
MiRZALibraryのCallback関数のInitializeとモニタリングの開始を行います。
② グラスとスマホの接続 確認
getGlassStatusの結果を用いるかCalbackのイベントを契機に接続状態を判断して下さい。
ライブラリ利用アプリ起動前に接続完了していた場合、Callbackのイベントが受信できませんのでgetGlassStatusの結果を用いて接続状態を判断してください。
③ UnityActivityの表示
取得した起動Intentの内容によって処理を変更してください。
Intent判定はextraで行えます。
intent.Call<AndroidJavaObject>("putExtra", KEY=START_UP, VALUE=mirzaApp);
上記の場合はMiRZAアプリからの起動ですので、そのままUnityでの表示を開始してください。
上記以外の場合はSpacesModeOn()を実行後、SUCCESSのCallbackを受け取ってからUnityでの表示を開始してください。
Callbackの実装部分について現在検証中となります。(グラスと接続したまま連続でアプリ起動をした場合、グラスでの表示が失敗するケースがあります。)
その他
- 本ライブラリ、サンプルコードの取り扱いは利用規約に記載の通りです。
過去発生していた問題
- グラスソフトウェアS240010とMiRZAアプリ1.00.09の組み合わせで、MRモード起動の変更指示を行った際にcallbackが受け取れない事象が発生していましたが、最新ソフトウェアにて修正済みです。
- 下記はMiRZAアプリ1.00.09にて修正済みです。
- スマホを再起動した場合、MiRZAとスマホが自動で再接続しなくなります。
- スマホ再起動時は一度MiRZAアプリをスマホのホーム画面から起動してください。
- MiRZAアプリのメインラインチャーからグラス向けアプリ起動後にタッチセンサーをトリプルタップした場合、MiRZAアプリに戻ったタイミングでキャプチャ撮影が実行される場合があります。
- スマホを再起動した場合、MiRZAとスマホが自動で再接続しなくなります。