質問: 現在、Androidのアプリ開発において、Bluetoothリモコンに対して曲名表示を行う処理を作成しています。 曲名表示にはBluetoothのAVRCP 1.3プロファイルが必要であり、これがAndroid標準でサポートされたのはAndroid 4.3からです。そのため、Android 4.3~4.4は RemoteControlClient.MetadataEditor、Android 5.0以降はMediaMetadataを使用して曲名を表示させることができました。 ところが一部の機種の中には、Android 4.3より前のバージョンでも曲名表示が行えるものがあります。具体的には、Xperia UL SOL22 (Android 4.2.2) と、SBH50の組み合わせにおいて確認しています。 この機種では、Android標準の音楽プレイヤー、Walkman音楽プレイヤー、Rocket Playerといった一部のアプリでは再生中の曲名を表示しますが、自身の開発するアプリでそれを表示させる方法が分かりません。 現状確認した事としては、Android標準の音楽プレイヤー(music)のソースから、外部に通知していると思しき場所を削除しながら動きを確認しましたが、動作に変化はありませんでした。唯一動きに変化があったのは、MediaPlayerオブジェクトが音楽再生を開始すると、その音楽の曲名を表示し、逆に再生を開始しなければ表示される曲名に変化は生じない、という事です。 恐らく、何か独自の方法で曲名を取得・通知していると考えています。 またそれ以外に、musicが外部に対して音楽を通知する以下のメッセージを同様に通知させてみましたが、動きはありませんでした。 ``` com.android.music.metachanged com.android.music.playbackcomplete com.android.music.playstatechanged ``` どなたか、この機種において曲名を表示させる方法ついてご存知ないでしょうか。もしくは、それ以外にAndroid 4.3より前の機種で曲名表示を行う事が出来たといった参考事例などありましたら、教えていただけると幸いです。
回答: SONYのSmart HeadsetにはSDKが存在します。 したがって、Android自体のAPIではなく、SONY独自のAPIを用いることで実現できると思います。 API自体は、英語になりますが、次のページでセットアップから利用方法まで丁寧に説明されています。 SmartWatch 2 APIs | Sony Developer World SmartWatch 2 APIsと記載されていますが、SBH50といったSmart HeadsetのAPIを含んでいます。 ドキュメントによると、各APIのSmart Headsetへの対応は、次のようになっています。 * Registration and Capabilities API ***Yes*** * Notification API ***Yes*** * Control API ***Yes*** * Sensor API ***No*** * Widget API ***No***