我有从 QuickSettigs Tile 开始的服务。此服务应从蓝牙耳机接收 MEDIA_BUTTON 事件。它一直在工作,直到我启动任何媒体播放器应用程序活动(不是服务!)。
如何表示问题:
- 启动 MyService - CLICK BT MEDIA_BUTTON - MyService 捕获的事件
- 停止 MyService - 单击 BT MEDIA_BUTTON - 媒体播放器应用程序启动
- CLICK BT MEDIA_BUTTON - 媒体播放器捕捉停止事件
- 启动 MyService - CLICK BT MEDIA_BUTTON - MyService 捕获的事件
- 打开媒体播放器应用程序Activity
- 按主页按钮以最小化媒体播放器应用程序活动
- 启动 MyService - CLICK BT MEDIA_BUTTON -媒体播放器捕获事件(等等为什么?!MyService MediaSession 处于活动状态!)
- 停止我的服务
- 启动 MyService - CLICK BT MEDIA_BUTTON -媒体播放器捕获事件
- 停止我的服务
- 启动 MyApplication 活动
- 按主页按钮以最小化 MyApplication 活动
- 启动 MyService - CLICK BT MEDIA_BUTTON - MyService GOTO:1捕获的事件
我试过了:
- 使用 AudioManager 获取 AudioFocus - 获得焦点
- 使用 MediaPlayer 播放声音 - 没有任何变化
但没有什么能解决问题。
在第一个媒体播放器活动启动 Avrcp 焦点锁定后:当我启动 MyService 时,在 logcat Avrcp 服务中说它的焦点是由媒体播放器应用程序(例如 DDB2 或留声机)获得的,我无法得到它(Avrcp 焦点,而不是 AudioFocus)。
V Avrcp : Active sessions changed, 1 sessions
V Avrcp : Updating media controller to android.media.session.MediaController@5658a74
V Avrcp : Metadata updated but no change!
V Avrcp : updatePlayPauseState, state: null device: null
V Avrcp : Device: no name:
I Avrcp : updatePlayStatusForDevice: device: null
V Avrcp : Focus gained for player: com.kabouzeid.gramophone
D Avrcp : Exit updateCurrentMediaController()
D Avrcp : Exit onActiveSessionsChanged()
V Avrcp : Active sessions changed, 1 sessions
V Avrcp : Updating media controller to android.media.session.MediaController@6237b9d
V Avrcp : Metadata updated but no change!
V Avrcp : updatePlayPauseState, state: null device: null
V Avrcp : Device: no name:
I Avrcp : updatePlayStatusForDevice: device: null
V Avrcp : Focus gained for player: com.kabouzeid.gramophone
D Avrcp : Exit updateCurrentMediaController()
D Avrcp : Exit onActiveSessionsChanged()
V Avrcp : MSG_UPDATE_RCC_CHANGE
V Avrcp : processRCCStateChange: com.kabouzeid.gramophone
V Avrcp : MSG_UPDATE_RCC_CHANGE
V Avrcp : processRCCStateChange: com.kabouzeid.gramophone
V Avrcp : updateAddressedMediaPlayer
V Avrcp : current Player: 0
V Avrcp : Requested Player: 0
V Avrcp : updateAddressedMediaPlayer
V Avrcp : current Player: 0
V Avrcp : Requested Player: 0
我不明白 MediaService 在 Android 中是如何工作的。如何调试这个?