ホーム画面のボリュームキー操作で着信音のボリュームが変わるのがあまりにもうっとおしい

ホーム画面のボリュームキー操作で着信音のボリュームが変わる。これがあまりにもうっとおしい。だいたい僕のケータイユースケースにおいては着信は無音バイブが基本でありそれを変更することはあまりない。ホーム画面のボリュームキー操作みたいな便利な操作にその変更が割り当てられててもメリットがないどころか勝手にバイブなしモードになっていて着信を取り逃しまくりが発生していて、これはもうUIとして腐っていると僕は確信しているがなぜか他の誰もが文句を言っていない。


僕はドコモショップの店員には幾度と無く文句を言い、ドコモプレミアクラブのアンケートでも3回以上文句を書いて、さらに株主になって株主アンケートにも書いてみたが一向に改善されなくてとても悔しいのだが、ドコモ的にはAndroidなんてもう使わなくていいよiPhone使えよiPhone使ったら全部解決だよというスタンスだと思うので仕方がないのかもしれない。


そもそも新機種は全部大きくて重い機種ばかりなので買う気になれず、しかもUI的な部分の改善もいい加減にしか行われないということであれば、今持っている機種をなんとかして使い続けるかiPhoneを買うかしかないのだ。iPhoneをいまさら買うのもくやしいのでいろいろ試行錯誤してみたが簡単には行かなかった。


まず、Launcherを置き換えるというのを試そうとしてみた。


AndroidはActivityのメソッドsetAudioStreamType(STREAM_MUSIC)を呼び出しておけばそのActivityがトップに居る間だけはボリュームキーの動作が音楽の音量調整になる。なのでランチャアプリのActivityがそれを呼び出すようになっていればだいたいOKなはずである。
Xperiaホームを書き換えるのはちょっと面倒そうなので、OpenSourceになっているAndroidの標準ラウンチャ(Launcher2)をダウンロードしてきてコンパイルすればいけるはず…と思いきや標準ラウンチャが要求しているPermission(BIND_APPWIDGET)がシステムアプリじゃないと使えないというエラーがビルド時に発生し、それを外してコンパイルするとウィジェットが配置した瞬間にランチャアプリが落ちる(SecurityExceptionで)という状況になったので、ちょっと一筋縄ではいかないように思った。


以前Eluga Pという端末を仕事でちょっと使わされていたときに、あまりにもホームアプリがクソ使いづらかったのでJerryBeanのランチャのAPKを探してきてインストールして普通に使えるっぽく感じたので、標準ランチャはシステム権限要らないのかと思っていたのだが、あのときウィジェット使ってなかったので気付かなかったのか、それとも何らかのワークアラウンドを使ってビルドされたAPKだったのかわからない。なんにせよLauncherの置き換えは面倒そうだった。


じゃあ例えばメディアプレーヤーを使うServiceを裏で起動しとけばいいのかもしれないと思い方向修正しMediaPlayerで音楽を鳴らすServiceを作成し、起動させてみた。音楽が鳴っている間はVolumeキーがメディアの音量に割り当てされる。無音の音楽をずっとならし続ければ望んだ動作になるがそれでは電池が一瞬でなくなってしまう。MediaPlayer.play()で音楽を鳴らしてすぐpause()してやれば、一時停止中でもVolumeキーが音楽の音量になったりしないかと期待していたのだが、pause()した直後からボリュームキーの役割は着信音量変更に戻ってしまうようだった。


これもなにかうまくやればいい感じにできるのかもしれないと思っているのだが、試行錯誤しないとよくわからないという状況で今日はあきらめることにした。そもそも面倒くさがらずにGoogle Play Storeを探せばそういうアプリがあったりするのかもしれない。