在我的Android Wear 2.0手表上,如果它通过蓝牙连接到我的手机,当我从任何来源在手机上播放音乐时,手表会自动切换到一些通用的音频控制应用程序,我可以从中播放/暂停/跳过/等在我的手机上。
这让我觉得一定有一些接口可以让我从我正在开发的应用程序实现这些基本的媒体控件。不过,我无法找到任何信息。
有人有任何关于在Android Wear上执行此操作的信息吗?
你可以参考此示例 Codelab,了解如何使用最新的 Android 媒体 API 调整音乐播放器应用,使其在 Android Wear 上无缝运行。
如果您使用媒体 API,则您的用户可以控制其 Android Wear 设备上的播放和浏览歌曲,而无需任何其他代码。通过本教程,Android Wear 会自动连接到通过MediaStyle
通知链接的MediaSessionCompat
。最新版本的Android Wear还连接到MediaBrowserServiceCompat
以浏览内容。
您还可以查看本教程,了解如何实现跨多种外形规格工作的音频媒体应用程序,并在 Android 手机、平板电脑、Android Auto、AndroidWear、AndroidTV 和 Google Cast 设备上提供一致的用户体验。
参见 AudioManager.dispatchMediaKeyEvent(KeyEvent keyEvent(
显然,此代码需要在您要控制的设备上运行。因此,您可以从手机上的可穿戴听众服务运行,以响应来自磨损的消息。
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);