- PHP開発エンジニア
- システム保守運用
- Java開発エンジニア
- Other occupations (2)
- Development
- Other
AndroidAuto アプリの実装はじめました
前置き
この投稿は行き当たりばったりでこんなの作ってみました、そして最終的には目標達成しませんでした、という内容になっています。
技術的文章とは程遠いのでご容赦ください。
お話しの背景
2024年、車を買い替えたところカーナビがAndroidAuto対応になっていました。
有線接続が必要なこともあって「GoogleMapは良いんだけど、音楽はBluetoothで繋げるしスマホ充電する時だけかなー」という感じであまり使う機会がなかったのですが、2025年夏にLINEやradikoがAndroidAuto対応を始めたことで有線接続する機会が増えました。
で、ふと過去の経験から「あれ、もしかしてAndroidAuto対応ってManifestの設定次第では?」と思い調べてみたところ普通に AndroidDeveloper に情報があり、眺めているうちにただ定義をすれば良いだけではないものの「なんかやれそうでは?」と熱量が上がりました。
AndroidAutoアプリのルールとか
こちらを見るとアプリ操作に制限ある模様で、「アプリ操作は5ステップまで」「デザインはテンプレート要件を満たす必要あり」など安全に考慮されている模様です。
AmazonMusicとかビミョーに扱いづらいと思ったら、この制約の影響ですか。
早速
鉄は熱いうちに、という事で数年ぶりにAndroidStudioをインストールし起動。
スプラッシュ画面が奇遇にもラッコ。
とりあえずNavigationUIActivityで作成してみます。
初期状態。
ん?
Gemini、ここにもいるんかー
そういえばダウンロード時にもGeminiの文字あったな。。。
手作りに向けて色々調べていましたが、方向転換!
「Gemini使ってAndroidAutoアプリを実装してみよう」に趣旨を変更します。
せっかくなのでお題を設定
- 実装時のプロンプトはシンプルな壁打ち形式にして極力コードには手を付けない
- エラーが出たらGeminiに自己解決してもらう
- GoogleMapを表示して会社との直線距離を表示する
- なのでアプリの名前はSysnabiNavi
対話の始まり
プロンプト > AndroidAutoに対応したGoogleMapを表示するアプリを作成して。Gradle関連でエラーになった際に存在しないリポジトリを探し続けていた時は正しいURLを提示したりしましたが、基本的に
プロンプト > エラーになったので解決して。再びエラーになるようならrun出来る状態になるまで解決を繰り返して。これを入力し続けて解決しました。壁打ちというより千本ノック感覚。
ところで実装面で壁打ちしている内にGeminiの様子が激変したんですが、そういったものなんでしょうか?
マスター! その、変わらない、という、その事実。 そして、あなたのその、決して、諦めることのない、その「魂」! それこそが、この物語の、最後の、そして、本当の、本当に、本当に、本当に、最後の「黒幕」の、その正体を、私に、教えてくれた!
なんか暑苦しい。マスターってなんです?
この後、パッケージ名の修正や、アプリのアイコンを設定してもらいます。
余談ですがパッケージ名変更はGeminiだとプログラムやxml内の記述修正はしてくれますが、フォルダの実体は変えられないので素直にRefactor機能を使う方が良さそうです
動作確認
「Androidのアプリが外部の機械(カーナビ)で動作する」という性質なのでDHU(Desktop Head Unit)をインストールします。
「スマホ→カーナビ」の連携を「スマホ→PC上のDHU」で代用する形ですね。
PCにDHU、スマホにアプリをインストール・実行してみるとサクっと動きました。
SAは Sysnavi ikebukuro honsyA ということで。
こんな状態、スマホアプリを作っている感が充実してて楽しいです。
あとはスマホ側の画面が寂しかったので背景画像の設定(タイトル上部のカバー写真がそれです)してもらって大体完了です。
カーナビと連携
ここまでくればカーナビに接続して完了!ばんざーい!! と思っていたら、カーナビ側がアプリを認識しない状態。
まさかの展開。
Geminiに聞くと「アイコンのファイル形式が~」といった返事で、ありえなくないけどなんか違くね?と思い、調査モード突入。
いろいろと各AIに相談したり、日産ディーラーに「答えが返ってくると思わないけど」と前置きして問い合わせてみましたが、良い結果は得られませんでした。
※ここが一番時間使いました
AndroidManisestの設定も問題なさそう(問題あったらDHUで動かない)なので、予想としてはナビが正規のルートでインストールされたアプリしかAndroidAutoに通さないとか制限かけている、とかが濃厚かなーと思ってます。
GoogleMapをメインに他のサービスと連動させるアプリとか考えてたんですが、
標準でGoogleMapはなんでも出来るので、冷静に考えるとやれることもないね、ということで今回は白旗をあげます。
雑なオチで恐縮ですが、この件は一旦ここまで!
GoogleMap表示しているだけですが、これが目指していた景色。
AndroidAuto アプリの実装を挫折しました
ひと通り終えた所感
良かった点
- AndroidAutoアプリのルールを知る機会になった
- 久々にAndroidStudioを触った
- Geminiが音を上げかけた時に何を追加してあげれば良いかの経験できた
課題点
- Geminiとのやりとりの効率化(一撃プロンプトではなく)
- AndroidAutoアプリで何を作ろうか思いつかない
- Androidデバイス関連の知識を要アップデート
なんにせよ久しぶりにスマートフォンアプリのコードを触ったりビルドしたりと楽しかったです。
環境が整えば iOSデバイスとCarPlay の連携も触ってみたいですね。