Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方

Android Auto対応アプリを作成するにあたり、普通のスマートフォン向けとは異なりAndroid Autoヘッドユニットサーバエミュレータが必要となります。これは必須とまでは言えませんが、Android Auto実機で動作試験を行うよりエミュレータの方が簡単ですし、Android Auto実機ではリファレンスどおりの動作が行われない可能性があります。また、Android Autoでナビゲーションを行うアプリは動作確認用のオートドライブに対応する処理をアプリに組み込む必要があります。このオートドライブはGoogle Playでのアプリ審査で使用されるため、Google Playでアプリを公開するには実装は必須となります。Android Auto対応アプリであってもナビを行う機能がなければ不要です。このAndroid Autoエミュレータとオートドライブテストの使い方をすぐに忘れてしまうので備忘録として書くことにしました。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 1
Android StudioではAndroid Autoヘッドユニットサーバのエミュレータを簡単にインストールすることが可能です。

Android Studio左上の「ファイル」から「設定」を開きます。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 1
「設定」の左列のツリーから「言語&フレームワーク」から「Android SDK」を選択します。
右列の上部から「SDK Tools」タブを選択します。
「Android Auto Desktop Head Unit Emulator」を選択し、インストールを実行します。またはステータスが「Installed」であることを確認します。Android Studioでのインストールは基本的には以上です。(OS環境によっては面倒な場合があります)
インストールが終わったら、Android Autoヘッドユニットサーバエミュレータの使用/動作自体にはAndroid Studioの起動は不要です。(Android Studioが起動していても構いません)

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 3
スマートフォン側はデベロッパーモードを有効化します。
開発中のアプリをインストールしたスマートフォンのAndroid設定からデバイス情報を表示するメニューを開きます。スマートフォンブランドや機種によってメニューの配置は異なることがあります。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 4
「ソフトウエアバージョン」を7回連打することでデベロッパーモードがオンになります。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 5
Android設定メニューからシステム管理系のメニューを開きます。または設定メニューの最上位階層に「開発者オプション」があるブランド/モデルもあります。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 6
デベロッパーモードがオンの状態では「開発者オプション」という項目が表示されるようになっているので開きます。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 7
「開発者オプション」のスイッチをオンにします。ブランド/モデルによっては確認画面が表示されるので承認する必要があります。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 8
オートドライブ機能を利用する場合はadbを利用するため「USBデバック」のスイッチをオンにします。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 9
Android Autoの設定を変更するのでAndroid設定から「その他の接続」などの子メニューを開きます。スマートフォンのブランド/モデルによっては違う項目の可能性があります。
「Android Auto」を開きます。または古いスマートフォンやAndroid Autoアプリ非搭載モデルGoogle PlayからAndroid Autoアプリをインストール後にアプリドロワーなどからAndroid Autoアプリを起動します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 10
スマートフォンのAndroid Autoアプリのメイン画面の下部にある「バージョン」を10回連打します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 11
Android Autoのデベロッパー向け設定を有効化する確認を求められるので「OK」をタップします。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 12
Android Autoのメインメニューの右上のメニューアイコンをタップし、「ヘッドユニットサーバーを起動」をタップします。この項目はAndroid Autoデベロッパモードがオンの場合だけに表示されます。
今回はデベロッパーモードを有効化する手順でしたが、動作テストなどが完了した場合にはヘッドユニットサーバーを停止してからこの画面に表示されている「デベロッパーモードを終了」をタップしてデベロッパーモードを無効化します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 13
Android StudioやAndroid AutoヘッドユニットサーバエミュレータをインストールしたPCとスマートフォンをUSBケーブルで接続します。
この記事の最初でインストールしたヘッドユニットエミュレータを起動します。
PC上でターミナルを開いて以下のコマンドを実行します。(画像ではホームディレクトリ下の~/Android/Sdk/extras/google/autoに移動してからdesktop-head-unitを実行しています。)
コマンドを実行すると以降逐次メッセージが表示され続けます。このターミナルはそのままにしておきます。

$ ~/Android/Sdk/extras/google/auto/desktop-head-unit -u
コマンドを実行すると以降逐次メッセージが表示され続けます。このターミナルはそのままにしておきます。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 14
デスクトップにAndroid Autoヘッドユニットサーバエミュレータのウインドウが開きます。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 15
Android Autoの画面が表示されたら、その画面を操作するなどして動作確認を行う(開発中の)アプリなどを表示します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 16
今回は開発中のBackseat co-Driverアプリの例を挙げます。今回は、文字入力で目的地を入力するのでアプリ画面の「検索」ボタンをタップします。またはAndroid Autoに表示されているマイクボタンをタップしてから音声入力で目的地を入力することも可能です。音声入力では「○○までナビ」などと言います。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 17
文字入力パッドが表示されます。ただし、Android Autoで表示されるパッドは日本語変換できないため、まずは入力用テキストボックスに1文字以上を入力します。これがトリガーとなり、スマートフォンの画面に文字入力パッドが表示されます。スマートフォン側では日本語の漢字変換が可能なためスマートフォンで目的地の入力を完了させます。このとき、スマートフォンに文字入力パッドが開かれない場合は、Android Autoの文字入力パッドに表示されるスマートフォンに矢印が描かれたアイコンをタップします。このアイコンが有効になっていない状態ではスマートフォンで文字入力を行うことはできません。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 18
スマートフォンに表示される文字入力パッドで文字を入力して日本語の漢字変換を行い目的地入力を完了させます。今回は「浅草橋駅」と入力しました。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 19
Android Auto画面の地図に青いラインが引かれ、案内が始まります。ただし、位置が変化しないためスタート地点から移動しないままです。ロケーション変更アプリで移動を試すことは可能ですが、今回はGoogle Playから実装を指定されたテスト用オートドライブ機能で移動を行います。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 20
必ず、案内が開始されてからオートドライブを実行します。
新しいターミナル画面で、adb shellコマンドを実行します。

$ adb shell dumpsys activity service com.gatolabo.backseat_co_driver/.service.BackseatCarAppService AUTO_DRIVE
開発中のBackseat co-Driverアプリではこのように入力することでオートドライブが開始されます。このコマンドが機能するためにはオートドライブのための実装がアプリ側で行われている必要があります。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 21
Android Autoのアプリ画面上に、「Simulation Mode (Auto Drive) Enabled Navigation」という表示が数秒発生します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 22
自動的にナビのルートに沿って移動が行われるので、案内中にカードやTTSによるターンバイターンの案内が行われることを確認します。/p>

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 23
次の曲がり角までの距離や目的地までの距離、目的地までの時間の目安などを表示することも可能なようです。この記事を書いている時点では、Backseat co-Driverアプリには次の曲がり角までの距離以外の実装が完了していません。

このオートドライブでの移動中の案内が正しく行われることがGoogle Playでのナビ実装が適切に行われているかの審査対象のようです。つまり、オートドライブでテストして正しく動作しているように見えれば良いともいえます。
とにかく、Android Autoに正式対応するためにはいろいろ実装しなければならず大変といえます。Backseat co-Driverアプリではナビ機能なんて実装したくなかったのですが、Android Autoでは頻繁にTTSによる発声を行うためには地図表示によるナビ機能が必要だということでかなり大掛かりに増築することになりました。(Android Autoではナビアプリでなければ頻繁なTTS利用が許されないようです)

関連記事:

記事へのコメント

いただいたコメントは管理人が確認した後に記事の 下部(ここ)に公開されます。
コメントスパム対策: 2022年4月以降、コメント内にリンクURLを含めると自動破棄されます。(記録されません)