Android蓝牙METADATA在汽车收音机上无法正常工作

时间:2015-10-08 07:52:43

标签: android bluetooth avrcp

我正在开发一款应用程序,通过蓝牙将网络收音机传输到我的汽车收音机。所有声音相关和远程控制的东西都可以工作但是我在向我的汽车收音机发送元数据时遇到了问题" Bolero Skoda一些Alpine OEM"。当我发送元数据时,它会被传输到收音机但未在显示屏中显示,但如果我按下" || PAUSE"在汽车收音机上并发送有效的元数据,我错过了什么? 我猜我的一些问题是我使用的是永无止境的流,但必须有一个解决方法。

汽车收音机正在运行AVRCP 1.3。 Android CM11 - 4.4.4

1 个答案:

答案 0 :(得分:0)

是的,抱歉! 这是:

RemoteControlClient mRemoteControlClient = null;

protected void onCreate(Bundle savedInstanceState) {
... 

PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, i, 0);
mRemoteControlClient = new RemoteControlClient(pi);

mAudioManager.registerRemoteControlClient(mRemoteControlClient);

int flags = RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS
              | RemoteControlClient.FLAG_KEY_MEDIA_NEXT
              | RemoteControlClient.FLAG_KEY_MEDIA_PLAY
              | RemoteControlClient.FLAG_KEY_MEDIA_PAUSE
              | RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE
              | RemoteControlClient.FLAG_KEY_MEDIA_STOP
              | RemoteControlClient.FLAG_KEY_MEDIA_FAST_FORWARD
              | RemoteControlClient.FLAG_KEY_MEDIA_REWIND;
mRemoteControlClient.setTransportControlFlags(flags);
mRemoteControlClient.setPlaybackState(RemoteControlClient.PLAYSTATE_PLAYING);

...
}


private void notifyChange()
{
    Thread meta = new Thread(new Runnable()
    {
        public void run()
        {
            mRemoteControlClient
                .editMetadata(true)
                .putString(MediaMetadataRetriever.METADATA_KEY_TITLE, Get_Station())
                .putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, Get_Comment())
                .putLong(MediaMetadataRetriever.METADATA_KEY_DURATION, 3000)
                .apply();
        }
    });
    meta.start();

    try {
        meta.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}