前回、Even Realities G2向けのスマートフォンアプリビルドを試していることを書きました。
このときは、G2との情報送受信ができないままでした。
その後、GitHub Copilotを使いながら色々調整した結果、自分でビルドしたスマホアプリが送ったテキストをG2で表示させることができました。
今回は、どのように実現したかと、これらが可能なリポジトリを公開したので紹介します。
注意:1/22時点に公開したリポジトリでは、iPhoneでは成功していません。
今回の環境
- Mac OS Tahoe 26.2
- Nothing Phone 3a (Android 16)
- Android Studio 2025.3
- Flutter 3.38.6
1. G1用公式リポジトリのソースコードを改修しないと、G2向けには使えない
公式Discordのreverse-engineeringというチャネルを読んでいると、G1とG2は通信プロトコルの仕様が変わっているようです。そのため、Bluetoothのペアリングができても、スマホからの通信はできなかったようでした。
さらに調べてみると、このGitHubリポジトリではG2向けのBLEプロトコル仕様を解析して、G2とPC間で動くようにしていました。
そこで、GitHub Copilotを使って、上記リポジトリを参考にしてG1向け公式リポジトリを改修しました。
こちらのリポジトリにまとめました。
2. ビルド手順
Readme.mdにも書きましたが以下の通りです。
Visual Studio Code、Flutterがインストールされた環境で、これらのコマンドを実行します。
Androidスマートフォンの場合です。
$ pwd -> top directory $ flutter pub get (スマートフォンをPCと接続する) $ flutter run
スマートフォンをPCと接続してからflutter runを実行すると、そのデバイスに合わせたplatformでビルドしてくれます。
iPhoneの場合、iPhoneをMacに接続し、あらかじめios/Runner.xcodeprojを開いて、"Signing and Capabilities"のTeamという箇所を自分のApple Accountに変更する必要があります。
その後で、以下のコマンドを実行します。
$ cd ios $ flutter precache --ios $ pod install $ cd ../ //top directory $ flutter run
3. 使い方
前提として、Apple Store/Googl PlayからインストールしたEvenAppとG2がBLE接続されていると、自分のアプリとG2は通信をしません。
そのため、まずは公式EvenAppとG2のBluetooth接続を切ります。私は検証の過程で公式EvenAppをアンインストールしていますが、そこまでしなくても良いはずです。
使い方です。自分のアプリを起動し、"Not Connected"をタッチします。すると、近くにあるG2の名称が表示されるので、そこでデバイス名をタッチします。この後、Connectedという表示になればBluetoothのペアリング成功です。
この辺は今回準備したGitHubリポジトリにスクリーンショット付きで書いているので、そちらもご参考ください。
元々参考にしたリポジトリには、スマホからBMP画像、テキスト、通知? (「テキスト」との違いがわからないので、わかったら書きます) をG2に送る機能が入っています。
注意:1/22時点ではテキスト送信しかG2に対応していません。
左の画像がスマートフォン側で作った文章、右側はG2の画面です。 スマートフォン側で"Send to Glasses"という場所をタップすると、テキストメッセージがG2に送信され、G2側にはPush通知として表示されます。
見づらいですが、G2の画面に "Send text to G2 Welcome to G2"という文字が表示されていることが確認できます。
なお、この画像ではG2に"Send text to G2 Welcome to G2"としか表示されていませんが、実際はG2側の操作でスクロールができるので、長文メッセージも読むことができます。
4. おわりに
ひとまず自分で作るアプリからテキスト送信ができたので、続けて画像送信も試したいと思います。
