前記事では各種OSのインストールとウイークポイント調べ、Walkmanアプリの各バージョンの動作を確認しました。今回は本端末の最大の特徴である Walkman Button について調べました。
考察
AndroidのOS構造は全く理解していませんが、 Walkman Button を誰がどのように検出しているかを知る必要があります。考えられるケースとしては、
- OSにWalkman Button ドライバ部があり、それが提供するAPIアプリが使用している。正攻法ですが端末メーカ独自のボタンを組込める基本構造なのかギモンです。Samisung Tab Active3 はボタンが7つくらいあるものもあり、どうなってるんでしょう?
- Walkman Button にデバイス( /dev/なんとか )が割当てられていて、APIアプリがそれにアクセスし検出している。同じLinux系のラズパイのI/Oポートはこの方式です。
- Walkman Button の操作をラッパーする常駐アプリがある。先刻の確認ではLinageOSではカメラボタンに割当てられていました。Android OSは独自のボタンを許容していない可能性もあります。そうすると、この方式しかないということになります。
純正OSコードを見てみる
一枚SIM版のD2005のOSコードは公開されていたので見てみました。(今回端末D2105用はなぜか無い) Eclipceにインポートして、BUTTON や GPIO(入出力ポート) というキーワードで検索すると、ボタン割当てぽいところがあり。しかしWalkmanというものは無し、
つづいてWalkmanというキーワードで検索すると、
以上のことから、考察1 の No.3 の方式の可能性が高そうです。アプリを一生懸命確認しても無意味そうです。
ボタンラッパーアプリ
プレインストールアプリの中のどれかがラッパーアプリか動かして調べるにしても、50コ近くあり、And6 や And7.1.2 で起動しないかもしれません。自分で作る? 既にこの世にあるのでは? Button Mapper というアプリがありました。OSの音楽再生イベントがあり、それとリンクさせるんですね。当アプリで、Walkman Buttonを認識させるとOS上はカメラボタンになっていました。なるほど。
これで問題点は解消、素晴らしいアプリです。少し寂しいですが、音楽再生アプリは、Walkmanアプリ でなくてなんてせもいいってことになります。
残るのは、wma再生、ラジオ、カメラ ですね。