2017-08-21 110 views
0

在我的Android Wear 2.0手錶上,如果通過藍牙連接到手機,當我從任何來源在手機上播放音樂時,手錶會自動切換到某些通用音頻控制應用程序從中我可以在手機上播放/暫停/跳過/等。Android Wear通用Android手機音樂控制

這讓我覺得必須有一些接口讓我可以從我正在開發的應用程序中實現這些基本的媒體控件。雖然我沒有找到任何信息。

有沒有人有關於在Android Wear上這樣做的任何信息?

回答

0

您可以參考此sample codelab瞭解如何使用最新的Android媒體API在Android Wear上無縫工作音樂播放器應用。

如果您使用媒體API,您的用戶可以在他們的Android Wear設備上控制播放和瀏覽歌曲,而無需任何其他代碼。通過本教程,Android Wear會自動連接到由MediaStyle通知鏈接的MediaSessionCompat。最新版本的Android Wear還連接到MediaBrowserServiceCompat以供瀏覽內容。

您還可以檢查此tutorial如何實現音頻的媒體應用程序,跨多種規格的作品,並提供在Android手機,平板電腦和Android Auto Android Wear,Android的電視和谷歌的投放裝置一致的用戶體驗。

+0

謝謝你,但是我覺得這個教程演示如何來完成我已經提到在我的問題的工作 - 實施移動自己的媒體播放器,使磨損設備將自動獲得控制權。我想在我的Wear應用中實現功能,以控制移動設備上的其他媒體播放器。在過去,這可能使用RemoteController.OnClientUpdateListener - 但已被棄用,並且需要MEDIA_CONTENT_CONTROL權限,第三方應用程序不再提供此權限。 – rainrunner

0

見AudioManager.dispatchMediaKeyEvent(KeyEvent的的keyEvent)

顯然,這代碼需要在你想要控制設備運行。因此,您可以從手機上的WearableListenerService運行,以響應磨損消息。

dispatchMediaKeyEvent是Kitkat及以上版本。爲了支持您廣播意圖的早期版本。 Intent.ACTION_MEDIA_BUTTON。

這兩個都需要鍵盤按下和向上的事件才能工作,或者至少在某些設備上。

long eventTime = SystemClock.uptimeMillis() - 1; 
KeyEvent downEvent = new KeyEvent(eventTime,eventTime,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_MEDIA_PAUSE, 0); 
audioManager.dispatchMediaKeyEvent(downEvent); 

eventTime++; 
KeyEvent upEvent = new KeyEvent(eventTime, eventTime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PAUSE, 0); 
audioManager.dispatchMediaKeyEvent(upEvent);