Most visited

Recently visited

Added in API level 16

InputManager

public final class InputManager
extends Object

java.lang.Object
   ↳ android.hardware.input.InputManager


提供有关输入设备和可用键布局的信息。

通过调用参数 INPUT_SERVICE调用 Context.getSystemService()来获得 INPUT_SERVICE

Summary

Nested classes

interface InputManager.InputDeviceListener

监听输入设备的更改。

Constants

String ACTION_QUERY_KEYBOARD_LAYOUTS

广播操作:查询可用的键盘布局。

String META_DATA_KEYBOARD_LAYOUTS

元数据键:与 ACTION_QUERY_KEYBOARD_LAYOUTS关联的键盘布局元数据。

Public methods

InputDevice getInputDevice(int id)

获取有关具有指定标识的输入设备的信息。

int[] getInputDeviceIds()

获取系统中所有输入设备的ID。

void registerInputDeviceListener(InputManager.InputDeviceListener listener, Handler handler)

注册输入设备侦听器,以接收有关何时添加,删除或更改输入设备的通知。

void unregisterInputDeviceListener(InputManager.InputDeviceListener listener)

取消注册输入设备监听器。

Inherited methods

From class java.lang.Object

Constants

ACTION_QUERY_KEYBOARD_LAYOUTS

Added in API level 16
String ACTION_QUERY_KEYBOARD_LAYOUTS

广播操作:查询可用的键盘布局。

输入管理器服务通过查询为此操作注册的广播接收器来查找可用的键盘布局。 应用程序可以通过在其清单中声明合适的广播接收器来为用户提供额外的键盘布局。

这是一个广播接收器声明的示例,应用程序可能在其AndroidManifest.xml中包含广告键盘布局。 元数据指定一个资源,其中包含应用程序提供的每个键盘布局的说明。


 <receiver android:name=".InputDeviceReceiver"
         android:label="@string/keyboard_layouts_label">
     <intent-filter>
         <action android:name="android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS" />
     </intent-filter>
     <meta-data android:name="android.hardware.input.metadata.KEYBOARD_LAYOUTS"
             android:resource="@xml/keyboard_layouts" />
 </receiver>
 

在上面的示例中, @xml/keyboard_layouts资源是指其元素为<keyboard-layouts>包含零个或多个<keyboard-layout>元素的XML资源。 每个<keyboard-layout>元素都指定特定键盘布局的键字符映射的名称,标签和位置。 接收机上的标签用于在键盘布局设置中命名由该接收机提供的键盘布局集合。


 <?xml version="1.0" encoding="utf-8"?>
 <keyboard-layouts xmlns:android="http://schemas.android.com/apk/res/android">
     <keyboard-layout android:name="keyboard_layout_english_us"
             android:label="@string/keyboard_layout_english_us_label"
             android:keyboardLayout="@raw/keyboard_layout_english_us" />
 </keyboard-layouts>
 

android:name属性指定了包中的键盘布局将被识别的标识符。 android:label属性指定一个人类可读的描述性标签来描述用户界面中的键盘布局,例如“英语(美国)”。 android:keyboardLayout属性是指定义键盘布局的key character map资源。

常量值:“android.hardware.input.action.QUERY_KEYBOARD_LAYOUTS”

META_DATA_KEYBOARD_LAYOUTS

Added in API level 16
String META_DATA_KEYBOARD_LAYOUTS

元数据键:与 ACTION_QUERY_KEYBOARD_LAYOUTS关联的键盘布局元数据。

指定描述应用程序提供的键盘布局的XML资源的资源ID。

常量值:“android.hardware.input.metadata.KEYBOARD_LAYOUTS”

Public methods

getInputDevice

Added in API level 16
InputDevice getInputDevice (int id)

获取有关具有指定标识的输入设备的信息。

Parameters
id int: The device id.
Returns
InputDevice The input device or null if not found.

getInputDeviceIds

Added in API level 16
int[] getInputDeviceIds ()

获取系统中所有输入设备的ID。

Returns
int[] The input device ids.

registerInputDeviceListener

Added in API level 16
void registerInputDeviceListener (InputManager.InputDeviceListener listener, 
                Handler handler)

注册输入设备侦听器,以接收有关何时添加,删除或更改输入设备的通知。

Parameters
listener InputManager.InputDeviceListener: The listener to register.
handler Handler: The handler on which the listener should be invoked, or null if the listener should be invoked on the calling thread's looper.

也可以看看:

unregisterInputDeviceListener

Added in API level 16
void unregisterInputDeviceListener (InputManager.InputDeviceListener listener)

取消注册输入设备监听器。

Parameters
listener InputManager.InputDeviceListener: The listener to unregister.

也可以看看:

Hooray!