藍牙設備按鍵是如何傳遞給Framework的

藍牙按鍵是如何上傳給Framework層的

主要流程是藍牙controller接收到slaver消息之後傳遞給host,然後host將按鍵信息寫入到/dev/input路徑下的一個節點中。之前分析過input按鍵的傳遞流程,此處的處理方式是一樣的。區別是PhoneWindowManager接收到藍牙的按鍵信息之後,會發送MSG_DISPATCH_MEDIA_KEY_WITH_WAKE_LOCK進行處理,接收到這個msg之後,就會調用AudioService進行處理。AudioService就會調用MediaFocusController進行處理。這裏詳細區分了語音信息還是按鍵信息。但是最終都是發送Action爲ACTION_MEDIA_BUTTON的廣播。例如MediaButtonIntentReceiver.java中會接收到這個廣播。之後根據這個Intent中的其他信息判斷出此按鍵的作用。之後轉換成自己的消息(MediaPlaybackService.CMDNEXT等),然後啓動MediaPlaybackService。然後MediaPlaybackService對播放器進行操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章