errand softのブログ

Androidのアプリ開発に関する記事を書いていきます。

スマホを耳に近づけた時に、耳元のスピーカーを使うようにする

相も変わらず、Android音声認識アプリ「虚無ログ」関係の話。
アイデアというのはその辺に転がっているけれども、それを実現させるのは難しい。
私の場合はSiriが良いアイデアの塊である。
……パクリじゃねえかw

それはさておき、Siriは良い
どこが良いかというと、主に自然に使えるところである。
特に良いのは、外で使う時も耳に当てさえすれば、耳元のスピーカーで話してくれるところだと思う。

私の虚無ログでは現状できないので、
今回はそれがAndroidでも実現可能か調べてみた。

結論からいうと可能だった。
ただし、私は強引な手法しか分からなかった。
近接センサーを使って、その結果を元に音源の設定をすればよいのだが、現状のSDKでは音源の設定方法があまり良くなさそうだ。
参考にしたのは下記。

近傍センサーの値を取得する

Android - Getting audio to play through earpiece

権限の追加も忘れずに。
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

やってみた結果として、たしかにできているけれども、音源を「MODE_IN_CALL(通話中モード)」にしなければならないのは何となく実用的ではない気がする。
Android Developerでも「電話アプリ以外に使うべきじゃないぜ」とあるし、検証できていないけれど、対象動作中に着信を受けられなくなるとしたら論外だし……。
もうちょっと調べないとダメだな。