Skip to content

Most visited

Recently visited

navigation

多功能按钮

除电源(表把)按钮外,Android Wear 还支持额外的物理按钮,称为多功能 (MF) 按钮。穿戴式设备支持库提供 API 以确定有关设备上可用 MF 按钮的信息。

本课程重点介绍如何检索有关设备上可用 MF 按钮的信息,并处理 KeyEvent 对象。

处理键 Event

在 Android 框架中,如果应用需要处理多功能按钮按下动作,则可以通过标准按键 Event 代码实现。键代码通常与设备上的具体物理按钮一对一对应。

应用可以处理的可能按钮键代码的可用集为:KEYCODE_STEM_1KEYCODE_STEM_2KEYCODE_STEM_3。您的应用可以接收这些键代码并将其转换为特定的应用内操作。

要处理按钮按下动作,可实现 onKeyDown() 函数。

例如,此实现与一些按钮按下动作对应,以控制应用中的操作。

@Override
// Activity
public boolean onKeyDown(int keyCode, KeyEvent event){
  if (event.getRepeatCount() == 0) {
    if (keyCode == KeyEvent.KEYCODE_STEM_1) {
      // Do stuff
      return true;
    } else if (keyCode == KeyEvent.KEYCODE_STEM_2) {
      // Do stuff
      return true;
    } else if (keyCode == KeyEvent.KEYCODE_STEM_3) {
      // Do stuff
      return true;
    }
  }
  return super.onKeyDown(keyCode, event);
}

查找可用按钮

要查找哪些按钮可供使用,您可以使用穿戴式设备支持库中可用的 WearableButtons.getButtonInfo()WearableButtons.getButtonCount() 函数。查找是否有可用的辅助按钮的简单方法是检查 WearableButtons.getButtonCount() 的返回值。如果该值大于 1,则存在可用的多功能按钮。

按钮按下动作的键代码

每个按钮将被映射到 KeyEvent 类中的一个 int 常量,如下表所示:

按钮 KeyEvent
MF 按钮 1 KEYCODE_STEM_1
MF 按钮 2 KEYCODE_STEM_2
MF 按钮 3 KEYCODE_STEM_3

以下示例代码显示如何获取可用的按钮计数:

int count = WearableButtons.getButtonCount(mContext);

if (count > 1) {
  // There are multi-function buttons available
}

WearableButtons.ButtonInfo buttonInfo =
  WearableButtons.getButtonInfo(mActivity, KeyEvent.KEYCODE_STEM_1);

if (buttonInfo == null) {
  // KEYCODE_STEM_1 is unavailable
} else {
  // KEYCODE_STEM_1 is present on the device
}

确定按钮位置

穿戴式设备支持库提供两个描述按钮位置的 API:

:在描述按钮及其功能时,我们建议您避免使用文本描述符,而是使用视觉指示。不过,在某些情况下,描述按钮更有意义。

上述函数是专为简单描述设计的。如果这些 API 不能满足您的应用需求,您还可以使用 WearableButtons.getButtonInfo() API 获取屏幕上的按钮位置,并以更加个性化的方式处理它。如需了解 API 的详细信息,请参阅 Wear API 参考

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)