简体   繁体   English

来自Android Wear手表的通用Android手机音乐控件

[英]General purpose Android phone music controls from Android Wear watch

On my Android Wear 2.0 watch, if it's connected to my phone via Bluetooth, when I play music on my phone from any source, the watch automatically switches to some generic audio control app from which I can play/pause/skip/etc on my phone. 在我的Android Wear 2.0手表上,如果它通过蓝牙连接到手机,则当我从任何来源播放手机上的音乐时,手表都会自动切换到一些通用音频控制应用程序,从中可以播放/暂停/跳过/电话。

This makes me think there must be some interface that would allow me to implement those basic media controls from an app that I'm developing. 这使我认为必须有一些接口可以使我从正在开发的应用程序中实现那些基本的媒体控件。 I haven't been able to find any info, though. 我一直找不到任何信息。

Does anybody have any info about doing that on Android Wear? 是否有人有关于在Android Wear上执行此操作的任何信息?

You may refer with this sample codelab on how to adapt a music player app to work seamlessly on Android Wear using the latest Android media APIs. 您可以参考此示例代码实验室 ,了解如何使用最新的Android媒体API使音乐播放器应用程序在Android Wear上无缝运行。

If you use the media APIs, your users can control playback and browse songs on their Android Wear devices without any additional code. 如果您使用媒体API,则用户可以在其Android Wear设备上控制播放和浏览歌曲,而无需任何其他代码。 With this tutorial, Android Wear automatically connects to the MediaSessionCompat linked by a MediaStyle notification. 在本教程中,Android Wear自动连接到由MediaStyle通知链接的MediaSessionCompat The latest version of Android Wear also connects to the MediaBrowserServiceCompat for browsing content. 最新版本的Android Wear还可连接到MediaBrowserServiceCompat以浏览内容。

You may also check this tutorial on how to implement an audio media app that works across multiple form factors and provide a consistent user experience on Android phones, tablets, Android Auto, Android Wear , Android TV and Google Cast devices. 您还可以查看本教程 ,了解如何实现可在多种外形尺寸下工作的音频媒体应用程序,并在Android手机,平板电脑,Android Auto, Android Wear ,Android TV和Google Cast设备上提供一致的用户体验。

See AudioManager.dispatchMediaKeyEvent(KeyEvent keyEvent) 请参阅AudioManager.dispatchMediaKeyEvent(KeyEvent keyEvent)

Obviously this code needs to run on what device you want to control. 显然,此代码需要在要控制的设备上运行。 So you could have in run from a WearableListenerService on the phone responding to messages from wear. 因此,您可以从手机上的WearableListenerService运行,以响应磨损消息。

The dispatchMediaKeyEvent is Kitkat and above. dispatchMediaKeyEvent为Kitkat及更高版本。 To support earlier versions you broadcast intents. 为了支持早期版本,您可以广播意图。 Intent.ACTION_MEDIA_BUTTON. Intent.ACTION_MEDIA_BUTTON。

Both of these need key down and up events to work, or at least on some devices. 这些都需要按键按下和按下事件才能起作用,或者至少在某些设备上才能起作用。

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM