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

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

Android Auto対応アプリを開発する場合、通常のスマートフォンアプリとは異なり、Android Autoヘッドユニットサーバエミュレータを利用したテスト環境があると便利です。必須ではありませんが、実機のAndroid Autoで動作確認を行うよりも手軽で、実機ではリファレンスどおりに動作しないケースもあるため、開発効率を大きく向上させることができます。

また、Android Autoでナビゲーション機能を提供するアプリは、動作確認用の「オートドライブ」に対応した処理をアプリへ実装する必要があります。このオートドライブは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の設定を変更します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 9
Androidの設定から「その他の接続」などのメニューを開き、「Android Auto」を選択します。メニュー名はメーカーや機種によって異なる場合があります。
古いスマートフォンやAndroid Autoアプリが標準搭載されていない機種では、Google PlayからAndroid Autoアプリをインストールし、アプリドロワーなどから起動してください。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 10
Android Autoアプリのメイン画面下部に表示されている「バージョン」を10回連続でタップします。

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

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

Android StudioやAndroid AutoヘッドユニットサーバエミュレータをインストールしたPCと、スマートフォンをUSBケーブルで接続します。
続いて、最初にインストールしたAndroid Autoヘッドユニットサーバエミュレータを起動します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 13
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によるターンバイターン案内(曲がり角の手前での案内)が正しく動作することを確認します。

Android Auto対応アプリ開発用エミュレータと試験用オートドライブの使い方 23
Android Autoでは、次の交差点までの距離だけでなく、目的地までの残り距離や到着予想時間などの情報も表示できます。
ただし、本記事執筆時点では、Backseat co-Driverアプリでは次の交差点までの距離表示のみ実装済みで、その他の情報については未実装です。

オートドライブ中にナビゲーション案内が正しく行われることは、Google Playでナビゲーション機能を審査する際の重要な確認項目となっているようです。つまり、オートドライブで正常に動作していることを確認できれば、Google Playの審査を通過できる可能性が高くなります。

Android Autoへ正式対応するためには、想像以上に多くの実装が必要になります。Backseat co-Driverでは、本来ナビゲーション機能を実装する予定はありませんでした。しかし、Android Autoではナビゲーションアプリでなければ頻繁なTTSによる音声案内が認められていないため、結果として地図表示やルート案内を含めた本格的なナビゲーション機能を追加実装することになりました。

関連記事:

記事へのコメント

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