前回の記事でアプリ自体は完成しましたが、実運用にあたって起動プロセスに不満が残りました。
当初はスマホ本体の音量ボタン長押しをトリガーに想定していました。しかし、画面オフ(スリープ)の状態からだと、「電源ボタンで画面を点灯させる」「音量ボタンを長押しする」という2プロセスが必要になります。運転中の操作を考えると、手元のボタン1つで完結する1プロセスが理想です。
そこで、SatechiのBluetoothメディアボタンを導入しました。
これを使えば、画面オフ状態からでも1プロセスで録音を開始できます。
設定にはAndroidアプリの「Key Mapper」を使用します。
Satechiボタンを押した時の信号をKey Mapperで拾い、自作アプリ(ZeroStepMemo)の起動アクションを割り当てます。Androidはスリープ状態でもメディアコントロールのBluetooth信号は受信できる仕様のため、画面オフからでもアプリを呼び出せます。アプリ側には画面を強制点灯させるコードを記述しているため、ボタンを押すだけで即座に録音が始まります。(私の調整が良くないのか、一度Satechiの割り当てボタンを押して、スマートフォンの画面をオンにしてから、もう一度割り当てボタンを押さないと、録音モードに入らない・・・悩みますね)
導入にあたり、車のステアリングにあるオーディオ操作ボタン(再生ボタンなど)との競合が懸念されました。音楽の再生ボタンを押してメモアプリが立ち上がっては困ります。
これについては、Key Mapper側で解決できました。トリガーの設定時に「特定のデバイスのみ」を指定できるため、Satechiのボタンからの信号にのみ反応させるようロックをかけられます。車のボタンを押しても誤作動することはありません。
一つ設定上の注意点があります。
スマートフォンのバッテリー節約機能が優秀なのか、画面オフが長く続くとバックグラウンドのKey Mapperが強制終了してしまうことがあります。
これを防ぐため、スマホの「設定」>「アプリ」>「Key Mapper」>「バッテリー」の項目を開き、「制限なし」に変更しておく必要があります。
手元のSatechiボタンを1回押すだけ(微妙ですが)で、ラジオの音量が下がり、録音が始まり、自動で保存されて終了する仕組みができました。これでひとまず視線を一切外さずにはメモをとる環境の完成しました。