moverio...android.os.buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。...

40
MOVERIO BT-300 デベロッパーズガイド

Upload: others

Post on 07-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300

デベロッパーズガイド

Page 2: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1)

改定履歴

リビジョン 項目 主な改定内容

R1.0 - 新規作成

R1.1 1.2 BT-300 用アプリケーション作成上のご注意 を追加

2.5.1. gradle の不要な設定項目に関する記述を削除

3.4.2 「ミュートノック機能との比較」を追加

5.1. フレームレートの項目を追加、カメラの解放処理に関する注意事項を追加

Page 3: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1)

本資料のご使用につきましては、次の点にご留意願います。

本資料の内容については、予告なく変更することがあります。

1. 本資料の一部、または全部を弊社に無断で転載、または、複製など他の目的に使用することは固くお断りいたします。

2. 本資料に掲載されるプログラム、使用方法はあくまでも参考情報であり、これら起因する第三者の権利(工業所有権を含む)侵害あるいは損

害の発生に対し、弊社はいかなる保証を行うものでありません、また、本資料によって第三者または弊社の工業所有権の実施権の許諾を行うも

のではありません。

3. 本資料に掲載されている製品は、生命維持装置その他、極めて高い信頼性が要求される用途を前提としていません。よって、弊社は本(当該)

製品をこれらの用途に用いた場合のいかなる責任についても負いかねます。

商標について

本ドキュメントに記載する製品名、商品名、会社名は、各社の商標または登録商標です。

microSD、microSDHC は SD Card Association の商標または商標登録です。.

Wi-Fi®、Wi-Fi Direct ™、Miracast ™ は Wi-Fi Alliance の商標または登録商標です。

Bluetooth® のワードマークおよびロゴは、Bluetooth SIG, Inc. が所有する登録商標であり、セイコーエプソン株式会社はこれらのマークをライセンスに基づいて使

用しています。

Google、Google Play、Android、は、Google Inc.の商標です。

Windows は、米国 Microsoft Corporation の、米国、日本およびその他の国における登録商標または商標です。

Mac, Mac OS は、Apple Inc.の商標です。

Intel, Cherry trail, Atom は米国およびその他の国における Intel Corporation の商標です。

なお、各社の商標および製品商標に対しては特に注記のない場合でも、これを十分尊重いたします。

©SEIKO EPSON CORAPORATION 2016, All right reserved.

Page 4: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1)

―目次―

1. 導入 ______________________________________________________ 1

1.1. 概要 _______________________________________________________________________________2

1.2. 主なシステム仕様 _____________________________________________________________________3

1.3. SDK の提供機能 _____________________________________________________________________5

2. アプリ開発の方法 ____________________________________________ 6

2.1. アプリ開発の概要 _____________________________________________________________________7

2.2. Android SDK の導入 _________________________________________________________________8

2.3. USB ドライバの設定 __________________________________________________________________ 11

2.4. BT-300 とパソコンとの接続 ____________________________________________________________ 12

2.5. Epson提供 SDK の組み込み _________________________________________________________ 13

3. ディスプレイ制御 ____________________________________________ 14

3.1. ディスプレイ制御概要 ________________________________________________________________ 15

3.2. 全画面表示機能 ____________________________________________________________________ 16

3.3. 2D/3D 表示切替 ___________________________________________________________________ 17

3.4. ミュート機能 _______________________________________________________________________ 20

3.5. シースルーを活かす画像の作り方 _______________________________________________________ 22

4. UI制御 __________________________________________________ 23

4.1. UI 制御概要 _______________________________________________________________________ 24

4.2. トラックパッド操作時にアプリで取得できるイベントについて ____________________________________ 25

5. カメラ制御 ________________________________________________ 26

Page 5: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1)

5.1. カメラ制御概要 _____________________________________________________________________ 27

6. センサー制御 _______________________________________________ 28

6.1. センサー制御概要 ___________________________________________________________________ 29

6.2. センサーの利用方法 _________________________________________________________________ 31

6.3. サンプルコード ______________________________________________________________________ 33

7. Bluetooth ________________________________________________ 34

7.1. Bluetooth概要 ____________________________________________________________________ 35

Page 6: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 1

1. 導入

Page 7: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 2

1.1. 概要

本ドキュメントは、Moverio BT-300 向けのアプリケーション開発に必要となるデバイスを活用するための技術情報につ

いて記述します。

製品外観とハードウェア構成

音量キー

電源ボタン 十字キー

トラックパッド

カメラ/インジケーター 照度センサー

micro-USB コネクタ

切替キー

決定キー

左から BACK キー HOME キー 履歴キー

ヘッドセット コントローラー

microSD カードスロット

Page 8: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 3

1.2. 主なシステム仕様

項目 詳細

System

プロセッサ Intel Cherry Trail, Atom x5, Quad core, 1.44GHz

アーキテクチャ x86 (ABI 32-bit)

ソフトウェア Android 5.1 API レベル 22

Memory RAM 2GB

内部ストレージ 16GB

RF Wi-Fi IEEE 802.11a/b/g/n/ac, Wi-Fi Direct

Wi-Fi Miracast Sink/Source w/UIBC

Bluetooth Bluetooth 4.1(Bluetooth Smart Ready certified)

Display 解像度 1280RGB x720

色再現性 24bit カラー

画面密度 mdpi

画面方向 Landscape 固定

Codec 静止画形式 BMP, JPEG, PNG, GIF

動画形式 MP4, VP8

音声形式 WAV, MP3, AAC

外部 I/F USB Type Micro USB Type-B, USB 2.0 (host/device)

ベンダーID 0x17EF

SD カード micorSD, microSDHC (MAX 32GB)

UI トラックパッド マルチタッチ対応

ボタン 電源ボタン、HOME キー、BACK キー、履歴キー、音量キー、切替キー

バイブ あり

Audio I/O 出力 ステレオイヤホン

入力 マイク

Sensor ヘッドセット 9-axis, ALS

コントローラー 9-axis

Camera 解像度 5M pixel

GPS あり

■ 基本的な機能については Android に準拠します。

■ 3G など Wi-Fi、 Bluetooth 以外のデータ通信および、通話等の機能には対応しておりません

■ Google 認証を取得していないため、Google 認証を必要とするサービスは使用できません。例:Google Play、Google 位

置情報サービス

Page 9: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 4

■機種固有の情報について

Android.os.Build を使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。

これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

表 1-1 Android.os.Build の主な項目

項目 内容

MANUFACTURER EPSON

MODEL EMBT3C

PRODUCT embt3c

BRAND MOVERIO

■BT-300 用アプリケーション作成上のご注意

本機の表示パネルの Si-OLED(有機 EL パネル)は、一般的にその特性上、焼き付き、輝度劣化などが発生するこ

とがあります。焼き付きを軽減するために、アプリケーション作成においては、以下の点にご注意ください。

・同じ画面が長時間表示され続けない画面遷移をしてください。

・同じ位置に常時表示される文字表示や、マーカー表示、オブジェクト表示については、輝度が高い配色を避けてくだ

さい。

・長時間無操作状態が続く場合には、スリープ機能を使用したり、アプリケーションにスクリーンセーバー処理を入れる

などの対策をしてください。

Page 10: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 5

1.3. SDKの提供機能

BT-300 は、Android 標準 API に加え、Epson 独自 API を使用することにより Android 標準では搭載されない固

有機能を利用できます。

表 1-2 各機能と使用する API の対応表

機能 内容 Android標準

API

Epson独自

API

3.ディスプレイ制御 サイドバイサイドによる 3D 表示の開始/終了

切り替え、ディスプレイ輝度調整、全画面表

示、ディスプレイミュート

4.UI制御 キーコード、トラックパッド操作 ✔

5 カメラ制御 静止画、動画の撮影 ✔

6.センサー制御 コントローラーに搭載されるセンサー値の取得、

BT-300 独自センサー

✔ ✔

7.Bluetooth Bluetooth 対応プロファイル ✔

次章以降で、これらの機能をアプリから利用する方法について記載します。

Page 11: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 6

2. アプリ開発の方法

Page 12: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 7

2.1. アプリ開発の概要

BT-300 はシステムソフトウェアとして Android を採用しています。そのため、BT-300 向けのアプリケーションは、

Android スマートフォン向けのアプリケーション開発と同様の環境で開発することができます。但し、BT-300 とアプリケー

ション開発パソコンとの接続や、BT-300 特有の機能を使用したアプリケーションを開発するためには、BT-300 に合わせ

たパソコン設定をする必要があります。

本章では BT-300 向けのアプリケーションを開発するために必要となる以下の手順について記載します。

■Android SDK の導入

■USB ドライバの設定

■BT-300 とパソコンとの接続

■Epson 提供 SDK の組み込み

Page 13: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 8

2.2. Android SDKの導入

以下の項目では Windows7 での環境を前提に Android SDK の導入について記載します。

2.2.1. Android Studioの入手

Android Studio を下記のサイトからダウンロードします。

https://developer.android.com/studio/index.html

2.2.2. JDKの入手およびインストール

JDK(7 以上)を下記のサイトからダウンロードし、インストールします。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2.2.3. Android Studioのインストール

インストーラーの指示に従い Android Studio をインストールします。

例)C:\Users\<ユーザー名>\AppData\Local\Android\sdk

※以降、上記フォルダに Android Studio がインストールされていることを前提に記載します。

Page 14: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 9

2.2.4. Platform-tools、SDK Platform

「C:\Users\<ユーザー名>\AppData\Local\Android\sdk\ SDK Manager.exe」を実行します。

※SDK Manager が起動した際、「No Packages found」と表示されダイアログが固まることがあります。

これは proxy が正しく設定されず、情報が更新できないときに発生します。

「Android SDK Manager」以外のダイアログを閉じ[Tools]-[Options]で proxy の設定を行ってください。

Proxy 設定が不明な場合は、ネットワーク管理者に「Proxy を利用した外部ネットワークへの接続方法」についてお問

い合わせください。

Page 15: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 10

SDK Manager で必要となるファイルを選択し、インストールします。

■[Tools]の[Android SDK Platform-tools]

■[Android5.1.1]の[SDK Platform]

にチェックを入れ、[Install]ボタンをクリックし、Accept all を選択します。

以上で Android SDK の導入は完了です。

次に Moverio とアプリケーションを開発するパソコンと接続するための、ADB ドライバの設定を行います。

Page 16: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 11

2.3. USB ドライバの設定

2.3.1. Windows をご使用の場合

Moverio とアプリケーション開発パソコンと接続するために、USB ドライバの設定を行います。

下記サイトより USB ドライバをインストールしてください。

https://software.intel.com/en-us/android/articles/installation-instructions-for-intel-android-usb-driver

2.3.2. Mac OS/ Linuxご使用の場合

USB ドライバのインストールは必要ありません。

Page 17: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 12

2.4. BT-300 とパソコンとの接続

ADB の設定が完了したパソコンと BT-300 の接続について記載します。

2.4.1. BT-300の設定

■USB デバッグを有効にするために、下記の手順を実行してください。

1) 「設定」「デバイス情報」をタップして開きます。

2) 「ビルド番号」を 7 回連続でタップすると、「開発者向けオプション」が表示されるようになります。

3) 「設定」「開発者オプション」を開き、「USB デバッグ」にチェックを入れます。

2.4.2. 接続確認方法

ADB の接続確認コマンドでパソコンと BT-300 が接続されているか確認することができます。

コマンドプロンプトを起動し、”cd C:\Users\<ユーザー名>\AppData\Local\Android\sdk\platform-tools”

を実行しフォルダを移動します。※環境変数で上記の Path を通しておくと便利です

“adb devices”を実行してリストにデバイス名が表示されれば ADB 接続ができています。

※表示されない場合は、BT-300 を USB 接続しなおし、再度”adb devices”を実行してください

Page 18: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 13

2.5. Epson提供 SDKの組み込み

2.5.1. Epson提供 SDKの利用方法

下記利用方法は、Android Studio でのアプリケーション開発を前提としています

1) Android Studio の ProjectView を表示し、[File]-[New]-[Directory]で"libs"フォルダを作成します

2) C:\Users\<ユーザー名>\AndroidStudioProjects\<アプリケーション名>\app\libs が作成されます

ので、ここへ BT300Ctrl.jar を置きます

(作成したプロジェクトのフォルダが C:\Users\<ユーザー名>\AndroidStudioProjects の場合)

※以降、C:\Users\<ユーザー名>\AndroidStudioProjects\<アプリケーション名>にプロジェクトがある

ものとして説明しています

3) AndroidStudio 上部の Sync Project with Gradle Files ボタンを押して、Gradle の変更をプロジェク

トに反映します

Page 19: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 14

3. ディスプレイ制御

Page 20: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 15

3.1. ディスプレイ制御概要

BT-300 は光学シースルーを特徴とするスマートグラスです。視界を妨げずクリアな映像を導く光学技術により、周囲

の状況を確認しながら、必要な情報をディスプレイに表示させることが可能です。また、単眼タイプと比べ、両眼シース

ルータイプは視野内の正面に映像や画像を投写できるのでより多くの情報を表示可能です。

<機能一覧>

■ 全画面表示

■ 2D/3D 表示切替

■ 表示輝度制御

■ ミュート制御

Page 21: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 16

3.2. 全画面表示機能

全画面表示を行う場合には、下記の方法による実装をしてください。BT-300ではAndroid標準機能を使用するこ

とにより、全画面表示が可能となっています。

参考)BT-200 では、Android 標準機能による全画面表示が行えないため、Epson 独自 API を使用していました。

■フルスクリーンにしたいアプリケーションへの実装例

Activity の onCreate()にて下記処理を実施してください。

View view = this.getWindow().getDecorView();

view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |

View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE);

※上記は一例です。詳細は下記 URL を参照してください。

https://developer.android.com/training/system-ui/immersive.html

上記の方法により、

アクションバー、ナビゲーションバー

を非表示にすることが出来ます

Page 22: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 17

3.3. 2D/3D表示切替

BT-300 では Side by side 方式のコンテンツを 3D 表示させることが可能です。

Side by side 方式とは一つの画面に左右の画像を並べて格納する方式です。

HD サイズの画面で Side by side 方式を実現する場合、左右それぞれ 1280x720 を 1/2 に縮小した

640x720 ピクセルの画像を並べて 1 フレームの画像を構成する必要があります。

Side by side 方式の画像を左目と右目の各々に分離し、各ディスプレイ出力させるには、以下のインターフェースを

利用します。

左目画像 右目画像

計 1280pixel

640pixel 640pixel

720pixel

Page 23: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 18

■インポートモジュール

com.epson.moverio.btcontrol.DisplayControl

■コンストラクタ

DisplayControl(Context context)

■インターフェース

■2D/3D表示切替

int setMode(int DisplayMode, boolean toast)

■パラメータ

DisplayMode : 2D/3D モードの状態

2D Mode : DisplayControl.DISPLAY_MODE_2D

3D Mode : DisplayControl. DISPLAY_MODE_3D

toast : 2D/3D を示す OSD の表示/非表示の切替え

表示 : true

非表示 : false

■戻り値

実行結果 0(成功)、-1(失敗)

■現在の 2D/3D表示設定取得

int getMode()

■パラメータ

なし

■戻り値

2D Mode : DisplayControl.DISPLAY_MODE_2D Constant value 0

3D Mode : DisplayControl. DISPLAY_MODE_3D Constant value 1

Page 24: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 19

3.3.1. ディスプレイ輝度調整

ヘッドセットに内蔵されたディスプレイ表示の輝度を調整すると、表示映像の透け具合が変化します。

輝度が低い状態では画像はより透けて見え、輝度を高くすると画像が強く浮いて見えます。

■インポートファイル

com.epson.moverio.btcontrol.DisplayControl

■コンストラクタ

DisplayControl(Context context)

■インターフェース

■ディスプレイ輝度(バックライト)の設定

int setBacklight(int backlight)

■パラメータ

backlight : 輝度レベル 0(最小輝度)~20(最大輝度)

■戻り値

実行結果 0(成功)、-1(失敗)

■ディスプレイ輝度の取得

int getBacklight()

■パラメータ

なし

■戻り値

現在の輝度設定値(0~20)

Page 25: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 20

3.4. ミュート機能

3.4.1. ディスプレイミュート

ディスプレイ表示を一時的に停止したい場合にはミュート機能が利用できます。例えば、装着中に危険を感じた時に

映像をミュートにすることによって視界を確保したい場合にお使いください。

ミュート状態への移行、復帰については下記のインターフェースを使用してください。

■インポートファイル

com.epson.moverio.btcontrol.DisplayControl

■コンストラクタ

DisplayControl(Context context)

■インターフェース

■ミュート状態を設定する

int setMute(boolean mute)

■パラメータ

mute : ミュート ON(true)/ OFF(false)

■戻り値

実行結果 0(正常値)、その他(エラー)

■ミュート状態を取得する

boolean getMute()

■パラメータ

なし

■戻り値

実行結果 true(ミュート ON)/ false(ミュート OFF)

Page 26: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 21

3.4.2. ミュートノック機能との比較

類似の機能として、BT-300のシステム標準機能である、映像と音声を一時的に停止するミュートノックがあります。APIを

使用した場合のディスプレイミュートとの比較を、下表に示します。

項目 ディスプレイミュート API ミュートノック

使用方法 ・DisplayControl#setMute()

をコールする

・設定アプリの「タップによるミュート」を ON にした状態で、ヘッド

セットを軽く2回たたく

・復帰する場合には、次の操作を行う

・ヘッドセットを軽く2回たたく

・切替キー、音量キー、電源ボタンのいずれかを押す

※ミュート中にオートスリープが働いた場合にはスリープが優

先され、スリープ状態となり、スリープ復帰時にミュートは解除

される

映像動作 ミュート時 ・ディスプレイが消灯する ・ディスプレイが消灯する(左列と同様の処理)

・システムから AudioManager に対して

KEYCODE_MEDIA_PAUSE が発行され、動画再生が一

時停止する

復帰時 ・ディスプレイが点灯する ディスプレイが点灯する(左列と同様の処理)

・システムから AudioManager に対して

KEYCODE_MEDIA_PLAY が発行され、動画再生が再開

する

音声動作 ミュート時 ・変化しない ・システムから AudioManager に対して

KEYCODE_MEDIA_PAUSE が発行され音楽再生が一時

停止する

復帰時 - ・システムから AudioManager に対して

KEYCODE_MEDIA_PLAY が発行され、音楽再生が再開

する

備考 ・現在のミュート状態を知るには、

DisplayControl#getMute()

をコールする

・ミュートノックの ON、OFF は、アプリケーションには通知されな

Page 27: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 22

3.5. シースルーを活かす画像の作り方

MOVERIO はプロジェクション技術を応用した製品です。ユーザーは、導光板を経由してハーフミラーに投影された映

像を見る仕組みのため、ハーフミラーに反射しない、即ち黒で表示された映像部分では透け感が強い見え方になりま

す。

背景が透けて文字が表示されるようなコンテンツを作る際には、文字表示はより目立ちやすい明るい色を、背景部分

は黒で描画を行うことで、対象部分だけを実映像に重ねあわせて表示することが可能になります。

以下のような方法により、シースルーを活かした絵作りが行えます。

1) 全画面表示を行う。

スクリーン感を低減するために、まず必要な画像以外(ステータスバー等)を消します。

2) 背景を黒にする。

表示したいオブジェクト以外を黒データ( [R,G,B]=[0,0,0] )にします。

黒い部分は、外光を透過します。

表示したいオブジェクト 見えている景色 MOVERIO 越しの景色

Page 28: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 23

4. UI制御

Page 29: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 24

4.1. UI制御概要

4.1.1. ハードウェアボタン種類と機能

BT-300 には、下図に示すハードウェアボタンがあります。それぞれのキーに対応するキーイベントは、表 4-1 キーコード

一覧に記載の通りです。

表 4-1 キーコード一覧

名称 キーコード※ デバイスのタイプ

Power button (KEYCODE_POWER) Physical switch

HOME key (KEYCODE_HOME) Touch Sensor

BACK key KEYCODE_BACK Touch Sensor

History key

(Recent key)

(KEYCODE_RECENT) Touch Sensor

Switch key (KEYCODE_MULTIFUNCTION) Physical switch

Volume Up KEYCODE_VOLUME_UP Physical switch

Volume Down KEYCODE_VOLUME_DOWN Physical switch

Up KEYCODE_DPAD_UP Touch Sensor

Down KEYCODE_DPAD_DOWN Touch Sensor

Left KEYCODE_DPAD_LEFT Touch Sensor

Right KEYCODE_DPAD_RIGHT Touch Sensor

Enter key KEYCODE_DPAD_CENTER Physical switch

※括弧つきのものは、アプリにイベント通知されません。

Switch key

Enter key

Volume Up Volume Down

Power button

BACK key HOME key History key

Up Down Left Right

Page 30: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 25

4.2. トラックパッド操作時にアプリで取得できるイベントについて

トラックパッドを操作した際に、各メソッドに対するイベントが発生するかどうかを下表に示します。

✔: イベントが発生する

クラス メソッド 動作 イベント発生

View onTouchEvent

dispatchTouchEvent

GestureDetector.OnGestureListener onDoubleTap

onDoubleTapEvent

onSingleTapConfirmed

GestureDetector.OnDoubleTapListener onDown

onFling

onLongPress

onScroll

onShowPress

onSingleTapUp

MotionEvent getAction ACTION_UP ✔

ACTION_DOWN ✔

ACTION_MOVE ✔

ACTION_CANCEL ✔

ACTION_HOVER_ENTER ✔

ACTION_HOVER_EXIT ✔

ACTION_HOVER_MOVE ✔

getToolType TOOL_TYPE_FINGER

TOOL_TYPE_MOUSE ✔

TOOL_TYPE_STYLUS

TOOL_TYPE_UNKNOWN

getX

getY

getDownTime

getPointerCount

getPointerId

getSize

getToolMajor

getToolMinor

getTouchMajor

getTouchMinor

getEventTime

getPressure

Page 31: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 26

5. カメラ制御

Page 32: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 27

5.1. カメラ制御概要

BT-300 は、ヘッドセットにカメラを搭載しています。通常の撮影に加え、マーカー認識などの用途に使うことができます。

5.1.1. 内蔵カメラの主な仕様 表 5-1 内蔵カメラの主な仕様

項目 内容

解像度 Picture size 2560x1920/ 1920x1080/ 1280x720/ 640x480/

Preview size 1920x1080/ 1280x720/ 640x480/

Video size 1920x1080/ 1280x720/ 640x480/

フレームレート 30fps

露出補正 最大、最小 max: +5, min: -5

ホワイトバランス auto/ incandeecent/ fluorescent/ warm-fluorescent/

daylight/ cloudy-daylight/ shade/ twilight

シーンモード auto/ action/ portrait/ night/ barcode

5.1.2. 外部接続カメラ

■BT-300 では、micro-USB コネクタに、UVC1.0 対応カメラを接続して使用することができます。

■撮影可能な画像解像度やフレームレートは、お使いになるカメラに依存します。

■全ての UVC 対応カメラでの動作を保証しているわけではありませんのでご注意ください。

5.1.3. カメラの解放処理に関する注意事項

カメラをオープンしている状態においてユーザーが HOME キーを押した場合、アプリケーションはバックグラウンドに退避しま

すが、その際に、カメラの解放処理を必ず行うようにしてください。具体的には、onPause メソッドの中でカメラの解放処理

を記述して下さい。特に、外部接続カメラについては、解放処理を行わない状態で着脱を行うと、正しく接続できない状

態となることがありますので注意して下さい。

Page 33: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 28

6. センサー制御

Page 34: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 29

6.1. センサー制御概要

BT-300では、センサー一覧に記載されているセンサーが利用可能です。各センサー値は、Android標準APIを利用す

ることで一般のセンサーと同様に取得できます。センサータイプが使用できない場合には、センサーID列の値を直接指定する

ことも可能です。

6.1.1. センサー一覧

表 6-1 センサー一覧

センサータイプ センサーID

(Hex) 内容 搭載場所

Android

標準

TYPE_ACCELEROMETER 0x00000001 加速度センサー ヘッドセット ✔

TYPE_MAGNETIC_FIELD 0x00000002 地磁気センサー ヘッドセット ✔

TYPE_ORIENTATION 0x00000003 方位角検知 ヘッドセット ✔

TYPE_GYROSCOPE 0x00000004 ジャイロセンサー ヘッドセット ✔

TYPE_LIGHT 0x00000005 照度センサー ヘッドセット ✔

TYPE_TEMPERATURE 0x00000007 温度センサー ヘッドセット ✔

TYPE_GRAVITY 0x00000009 重力センサー ヘッドセット ✔

TYPE_LINEAR_ACCELERATION 0x0000000a 直線加速度センサー ヘッドセット ✔

TYPE_ROTATION_VECTOR 0x0000000b 回転ベクトルセンサー ヘッドセット ✔

TYPE_MAGNETIC_FIELD_UNCALIBRATED 0x0000000e 地磁気センサー ヘッドセット ✔

TYPE_HEADSET_TAP 0x00002001 タップ検知 ヘッドセット

TYPE_CONTROLLER_ACCELEROMETER 0x00100001 加速度センサー コントローラー

TYPE_CONTROLLER_MAGNETIC_FIELD 0x00100002 地磁気センサー コントローラー

TYPE_CONTROLLER_GYROSCOPE 0x00100004 ジャイロセンサー コントローラー

TYPE_CONTROLLER_ROTATION_VECTOR 0x0010000b 回転ベクトルセンサー コントローラー

※ヘッドセット、コントローラーに搭載されているセンサーは同時に使用することが出来ます。同時に使用可能なセンサーに

特に制限はありませんが、パフォーマンス低下を防ぐために、必要なセンサーのみをリスナー登録することを推奨します。

※ミュートノック機能の検知には、TYPE_HEADSET_TAP によるタップ検知を使用しています。ミュートノックが ON になっ

ている場合、タップを検知するとミュート状態となってしまいます。そのため、タップ検知を有効にする前に、ユーザーに対して、

ミュートノックをを OFF にするように案内をするようにしてください。

Page 35: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 30

6.1.2. 各センサーの座標軸について

ヘッドセットおよびコントローラーに搭載されているセンサーのうち、X,Y,Z 軸を持つ各センサーについては、下図のような座

標軸に従ってセンサー値が出力されます。

像確認

ヘッドセット コントローラー

センサー位置 +X

+Y

+Z +X

+Y

+Z

Page 36: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 31

6.2. センサーの利用方法

センサーの利用には、Android 標準 API の SensorEventListener を利用します。

6.2.1. インポートモジュール

センサーを利用する場合、下記モジュールをインポートして下さい。

android.hardware.Sensor

android.hardware.SensorEvent

android.hardware.SensorEventListener

6.2.2. SensorEventListenerの利用

センサーを利用する Activity や Service に SensorEventListener を継承する必要があります。

例)Activity に SensorEventListener を継承する

public class SampleActivity extends Activity implements SensorEventListener

6.2.3. 利用するセンサーの登録

センサーを利用する場合は、センサーをリスナー登録する必要があります。

例)加速度センサーの登録

// システムのセンサーサービスの取得

SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE);

// 加速度センサー(TYPE_ACCELEROMETER)の登録

Sensor s = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sm.registerListener(this, s, SensorManager.SENSOR_DELAY_NORMAL);

6.2.4. センサー値の取得

SensorEventListenerのonSensorChangedにてセンサーイベントを取得することで、センサー値を利用することができます。

例)加速度センサーのセンサー値の取得

@Override public void onSensorChanged(SensorEvent event) {

// 加速度センサー値の取得(ログ表示)

if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){ Log.d("Sample","ax="+event.values[0]+",ay="+event.values[1]+",az="+event.values[2]);

} }

Page 37: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 32

onSensorChanged で取得できるセンサー値は、使用するセンサータイプによって異なります。各センサータイプと対応する

SensorEvent 配列の要素番号は、次のとおりです。

表 6-2 Epson 独自センサーで取得できるセンサー値

センサータイプ 単位 SensorEvent

配列の要素番号 センサー値

TYPE_HEADSET_TAP - 0 2: 左側、もしくは、右側からダブルタップされた

TYPE_CONTROLLER_ACCELEROMETER m/s2

0 X 軸

1 Y 軸

2 Z 軸

TYPE_CONTROLLER_MAGNETIC_FIELD rad/s

0 X 軸

1 Y 軸

2 Z 軸

TYPE_CONTROLLER_GYROSCOPE uT

0 X 軸

1 Y 軸

2 Z 軸

TYPE_CONTROLLER_ROTATION_VECTOR -

0 X 軸

1 Y 軸

2 Z 軸

※Android 標準のセンサータイプについては、Android 準拠のため、割愛しています。

Page 38: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 33

6.3. サンプルコード

センサータイプ TYPE_HEADSET_TAP を使用し、タップ検知した際に Toast を表示するサンプルコードです。

package com.epson.moverio.sample.TapSample; import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends Activity implements SensorEventListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); Sensor sensor = sm.getDeffaultSensor(Sensor.TYPE_HEADSET_TAP); sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override public void onSensorChanged(SensorEvent event) { if(event.sensor.getType() == Sensor.TYPE_HEADSET_TAP){

// タップイベント発生時に、Toast表示する

Toast.makeText(this, "tap event!", Toast.LENGTH_SHORT).show(); } } @Override protected void onPause() { super.onPause(); SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); if (sm != null) { sm.unregisterListener(this); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { }

Page 39: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 34

7. Bluetooth

Page 40: MOVERIO...Android.os.Buildを使用して取得できる機種固有情報のうち、主な項目は下表のとおりです。 これらの情報を使用して機種を判別することによって、機種に応じて別の処理をする場合に活用することができます。

MOVERIO BT-300 デベロッパーズガイド (Rev.1.1) 35

7.1. Bluetooth概要

7.1.1. 対応仕様

BT-300 の Bluetooth 仕様について記述します。

表 7-1 Bluetooth 対応プロファイル

Profile Role

Headset Profile(HSP) Audio Gateway

Advanced Audio Distribution Profile(A2DP) Source

Audio/Video Remote Control Profile(AVRCP) Target

Human Interface Device(HID) Host

Object Push Profile(OPP) Client/Server

Personal Area Network(PAN) NAP/PANU