Los archivos de configuración de dispositivos de entrada (archivos .idc
) contienen propiedades de configuración específicas del dispositivo que afectan el comportamiento de los dispositivos de entrada.
Los archivos de configuración del dispositivo de entrada generalmente no son necesarios para periféricos estándar como teclados y ratones HID, ya que el comportamiento predeterminado del sistema generalmente garantiza que funcionarán desde el primer momento. Por otro lado, los dispositivos integrados, en particular las pantallas táctiles, casi siempre requieren archivos de configuración del dispositivo de entrada para especificar su comportamiento.
Razón fundamental
Android detecta y configura automáticamente la mayoría de las capacidades del dispositivo de entrada según los tipos de eventos y las propiedades que informa el controlador del dispositivo de entrada del kernel de Linux asociado.
Por ejemplo, si un dispositivo de entrada admite el tipo de evento EV_REL
y los códigos REL_X
y REL_Y
, así como el tipo de evento EV_KEY
y BTN_MOUSE
, Android clasificará el dispositivo de entrada como un mouse. El comportamiento predeterminado de un mouse es presentar un cursor en pantalla que rastrea los movimientos del mouse y simula toques cuando se hace clic en él. Aunque el mouse se puede configurar de manera diferente, el comportamiento predeterminado suele ser suficiente para los periféricos de mouse estándar.
Ciertas clases de dispositivos de entrada son más ambiguas. Por ejemplo, las pantallas táctiles multitáctiles y los paneles táctiles admiten el tipo de evento EV_ABS
y los códigos ABS_MT_POSITION_X
y ABS_MT_POSITION_Y
como mínimo. Sin embargo, los usos previstos de estos dispositivos son bastante diferentes y no siempre pueden determinarse automáticamente. Además, se requiere información adicional para entender la información de presión y tamaño que reportan los dispositivos táctiles. Por lo tanto, los dispositivos táctiles, especialmente las pantallas táctiles integradas, normalmente necesitan archivos IDC.
Ubicación
Los archivos de configuración del dispositivo de entrada se ubican por proveedor de USB, ID de producto (y opcionalmente versión) o por nombre del dispositivo de entrada.
Las siguientes rutas se consultan en orden.
-
/odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
-
/vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
-
/system/usr/idc/Vendor_XXXX_Product_XXXX.idc
-
/data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
-
/odm/usr/idc/ device-name .idc
-
/vendor/usr/idc/ device-name .idc
-
/system/usr/idc/ device-name .idc
-
/data/system/devices/idc/ device-name .idc
Al construir una ruta de archivo que contiene el nombre del dispositivo, todos los caracteres del nombre del dispositivo que no sean '0'-'9', 'a'-'z', 'A'-'Z', '-' o '_' se reemplazan por '_'.
Sintaxis
Un archivo de configuración de dispositivo de entrada es un archivo de texto sin formato que consta de asignaciones de propiedades y comentarios.
Propiedades
Cada una de las asignaciones de propiedad consta de un nombre de propiedad, un =
, un valor de propiedad y una nueva línea. Como esto:
property = value
Los nombres de propiedades son identificadores de texto literales no vacíos. No deben contener espacios en blanco. Cada componente del sistema de entrada define un conjunto de propiedades que se utilizan para configurar su función.
Los valores de propiedad son cadenas literales no vacías, números enteros o números de punto flotante. No deben contener espacios en blanco ni los caracteres reservados \
o "
.
Los nombres y valores de las propiedades distinguen entre mayúsculas y minúsculas.
Comentarios
Las líneas de comentarios comienzan con '#' y continúan hasta el final de la línea. Como esto:
# A comment!
Se ignoran las líneas en blanco.
Ejemplo
# This is an example of an input device configuration file. # It might be used to describe the characteristics of a built-in touch screen. # This is an internal device, not an external peripheral attached to the USB # or Bluetooth bus. device.internal = 1 # The device should behave as a touch screen, which uses the same orientation # as the built-in display. touch.deviceType = touchScreen touch.orientationAware = 1 # Additional calibration properties... # etc...
Propiedades comunes
La siguiente propiedad es común a todas las clases de dispositivos de entrada.
Consulte la documentación de cada clase de dispositivo de entrada para obtener información sobre las propiedades especiales utilizadas por cada clase.
device.internal
Definición: device.internal
= 0
| 1
Especifica si el dispositivo de entrada es un componente interno integrado en lugar de un periférico conectado externamente (probablemente extraíble).
Si el valor es
0
, el dispositivo es externo.Si el valor es
1
, el dispositivo es interno.Si no se especifica el valor, el valor predeterminado es
0
para todos los dispositivos en el bus USB (BUS_USB) o Bluetooth (BUS_BLUETOOTH),1
en caso contrario.
Esta propiedad determina las decisiones de política predeterminadas con respecto a los eventos de activación.
Los dispositivos de entrada internos generalmente no reactivan la pantalla a menos que estén configurados explícitamente para hacerlo en el archivo de diseño de teclas o en una regla de política codificada. Esta distinción evita que las pulsaciones y toques de teclas activen falsamente su teléfono cuando está en su bolsillo. Por lo general, solo hay un pequeño puñado de claves de activación definidas.
Por el contrario, los dispositivos de entrada externos suelen activar el dispositivo de forma más agresiva porque se supone que están apagados o no enchufados durante el transporte. Por ejemplo, presionar cualquier tecla en un teclado externo es un buen indicador de que el usuario quiere que el dispositivo se active y responda.
Es importante asegurarse de que el valor de la propiedad device.internal
esté configurado correctamente para todos los dispositivos de entrada internos.
Validación
Asegúrese de validar los archivos de configuración de su dispositivo de entrada utilizando la herramienta Validar mapas de teclas .
, Los archivos de configuración de dispositivos de entrada (archivos .idc
) contienen propiedades de configuración específicas del dispositivo que afectan el comportamiento de los dispositivos de entrada.
Los archivos de configuración del dispositivo de entrada generalmente no son necesarios para periféricos estándar como teclados y ratones HID, ya que el comportamiento predeterminado del sistema generalmente garantiza que funcionarán desde el primer momento. Por otro lado, los dispositivos integrados, en particular las pantallas táctiles, casi siempre requieren archivos de configuración del dispositivo de entrada para especificar su comportamiento.
Razón fundamental
Android detecta y configura automáticamente la mayoría de las capacidades del dispositivo de entrada según los tipos de eventos y las propiedades que informa el controlador del dispositivo de entrada del kernel de Linux asociado.
Por ejemplo, si un dispositivo de entrada admite el tipo de evento EV_REL
y los códigos REL_X
y REL_Y
, así como el tipo de evento EV_KEY
y BTN_MOUSE
, Android clasificará el dispositivo de entrada como un mouse. El comportamiento predeterminado de un mouse es presentar un cursor en pantalla que rastrea los movimientos del mouse y simula toques cuando se hace clic en él. Aunque el mouse se puede configurar de manera diferente, el comportamiento predeterminado suele ser suficiente para los periféricos de mouse estándar.
Ciertas clases de dispositivos de entrada son más ambiguas. Por ejemplo, las pantallas táctiles multitáctiles y los paneles táctiles admiten el tipo de evento EV_ABS
y los códigos ABS_MT_POSITION_X
y ABS_MT_POSITION_Y
como mínimo. Sin embargo, los usos previstos de estos dispositivos son bastante diferentes y no siempre pueden determinarse automáticamente. Además, se requiere información adicional para entender la información de presión y tamaño que reportan los dispositivos táctiles. Por lo tanto, los dispositivos táctiles, especialmente las pantallas táctiles integradas, normalmente necesitan archivos IDC.
Ubicación
Los archivos de configuración del dispositivo de entrada se ubican por proveedor de USB, ID de producto (y opcionalmente versión) o por nombre del dispositivo de entrada.
Las siguientes rutas se consultan en orden.
-
/odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
-
/odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
-
/vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
-
/system/usr/idc/Vendor_XXXX_Product_XXXX.idc
-
/data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
-
/odm/usr/idc/ device-name .idc
-
/vendor/usr/idc/ device-name .idc
-
/system/usr/idc/ device-name .idc
-
/data/system/devices/idc/ device-name .idc
Al construir una ruta de archivo que contiene el nombre del dispositivo, todos los caracteres del nombre del dispositivo que no sean '0'-'9', 'a'-'z', 'A'-'Z', '-' o '_' se reemplazan por '_'.
Sintaxis
Un archivo de configuración de dispositivo de entrada es un archivo de texto sin formato que consta de asignaciones de propiedades y comentarios.
Propiedades
Cada una de las asignaciones de propiedad consta de un nombre de propiedad, un =
, un valor de propiedad y una nueva línea. Como esto:
property = value
Los nombres de propiedades son identificadores de texto literales no vacíos. No deben contener espacios en blanco. Cada componente del sistema de entrada define un conjunto de propiedades que se utilizan para configurar su función.
Los valores de propiedad son cadenas literales no vacías, números enteros o números de punto flotante. No deben contener espacios en blanco ni los caracteres reservados \
o "
.
Los nombres y valores de las propiedades distinguen entre mayúsculas y minúsculas.
Comentarios
Las líneas de comentarios comienzan con '#' y continúan hasta el final de la línea. Como esto:
# A comment!
Se ignoran las líneas en blanco.
Ejemplo
# This is an example of an input device configuration file. # It might be used to describe the characteristics of a built-in touch screen. # This is an internal device, not an external peripheral attached to the USB # or Bluetooth bus. device.internal = 1 # The device should behave as a touch screen, which uses the same orientation # as the built-in display. touch.deviceType = touchScreen touch.orientationAware = 1 # Additional calibration properties... # etc...
Propiedades comunes
La siguiente propiedad es común a todas las clases de dispositivos de entrada.
Consulte la documentación de cada clase de dispositivo de entrada para obtener información sobre las propiedades especiales utilizadas por cada clase.
device.internal
Definición: device.internal
= 0
| 1
Especifica si el dispositivo de entrada es un componente interno integrado en lugar de un periférico conectado externamente (probablemente extraíble).
Si el valor es
0
, el dispositivo es externo.Si el valor es
1
, el dispositivo es interno.Si no se especifica el valor, el valor predeterminado es
0
para todos los dispositivos en el bus USB (BUS_USB) o Bluetooth (BUS_BLUETOOTH),1
en caso contrario.
Esta propiedad determina las decisiones de política predeterminadas con respecto a los eventos de activación.
Los dispositivos de entrada internos generalmente no reactivan la pantalla a menos que estén configurados explícitamente para hacerlo en el archivo de diseño de teclas o en una regla de política codificada. Esta distinción evita que las pulsaciones y toques de teclas activen falsamente su teléfono cuando está en su bolsillo. Por lo general, solo hay un pequeño puñado de claves de activación definidas.
Por el contrario, los dispositivos de entrada externos suelen activar el dispositivo de forma más agresiva porque se supone que están apagados o no enchufados durante el transporte. Por ejemplo, presionar cualquier tecla en un teclado externo es un buen indicador de que el usuario quiere que el dispositivo se active y responda.
Es importante asegurarse de que el valor de la propiedad device.internal
esté configurado correctamente para todos los dispositivos de entrada internos.
Validación
Asegúrese de validar los archivos de configuración de su dispositivo de entrada utilizando la herramienta Validar mapas de teclas .