Arquivos de configuração do dispositivo de entrada

Os arquivos de configuração do dispositivo de entrada (arquivos .idc ) contêm propriedades de configuração específicas do dispositivo que afetam o comportamento dos dispositivos de entrada.

Os arquivos de configuração do dispositivo de entrada normalmente não são necessários para periféricos padrão, como teclados e mouses HID, uma vez que o comportamento padrão do sistema geralmente garante que eles funcionarão imediatamente. Por outro lado, dispositivos incorporados, especialmente telas sensíveis ao toque, quase sempre exigem arquivos de configuração de dispositivos de entrada para especificar seu comportamento.

Justificativa

O Android detecta e configura automaticamente a maioria dos recursos do dispositivo de entrada com base nos tipos e propriedades de eventos relatados pelo driver de dispositivo de entrada do kernel Linux associado.

Por exemplo, se um dispositivo de entrada suportar o tipo de evento EV_REL e os códigos REL_X e REL_Y , bem como o tipo de evento EV_KEY e BTN_MOUSE , o Android classificará o dispositivo de entrada como um mouse. O comportamento padrão de um mouse é apresentar um cursor na tela que rastreia os movimentos do mouse e simula toques quando o mouse é clicado. Embora o mouse possa ser configurado de maneira diferente, o comportamento padrão geralmente é suficiente para periféricos de mouse padrão.

Certas classes de dispositivos de entrada são mais ambíguas. Por exemplo, telas sensíveis ao toque multitoque e touch pads suportam, no mínimo, o tipo de evento EV_ABS e os códigos ABS_MT_POSITION_X e ABS_MT_POSITION_Y . No entanto, os usos pretendidos destes dispositivos são bastante diferentes e nem sempre podem ser determinados automaticamente. Além disso, são necessárias informações adicionais para entender as informações de pressão e tamanho relatadas pelos dispositivos sensíveis ao toque. Conseqüentemente, os dispositivos sensíveis ao toque, especialmente as telas sensíveis ao toque integradas, geralmente precisam de arquivos IDC.

Localização

Os arquivos de configuração do dispositivo de entrada estão localizados por fornecedor USB, ID do produto (e opcionalmente versão) ou pelo nome do dispositivo de entrada.

Os seguintes caminhos são consultados em ordem.

  • /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

Ao construir um caminho de arquivo que contém o nome do dispositivo, todos os caracteres no nome do dispositivo diferentes de '0'-'9', 'a'-'z', 'A'-'Z', '-' ou '_' são substituídos por '_'.

Sintaxe

Um arquivo de configuração de dispositivo de entrada é um arquivo de texto simples que consiste em atribuições de propriedades e comentários.

Propriedades

Cada uma das atribuições de propriedade consiste em um nome de propriedade, um = , um valor de propriedade e uma nova linha. Assim:

property = value

Os nomes de propriedades são identificadores de texto literais não vazios. Eles não devem conter espaços em branco. Cada componente do sistema de entrada define um conjunto de propriedades que são utilizadas para configurar sua função.

Os valores de propriedade são literais de string não vazios, inteiros ou números de ponto flutuante. Eles não devem conter espaços em branco ou caracteres reservados \ ou " .

Os nomes e valores das propriedades diferenciam maiúsculas de minúsculas.

Comentários

As linhas de comentários começam com '#' e continuam até o final da linha. Assim:

# A comment!

As linhas em branco são ignoradas.

Exemplo

# 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...

Propriedades comuns

A propriedade a seguir é comum a todas as classes de dispositivos de entrada.

Consulte a documentação de cada classe de dispositivo de entrada para obter informações sobre as propriedades especiais usadas por cada classe.

device.internal

Definição: device.internal = 0 | 1

Especifica se o dispositivo de entrada é um componente interno integrado em oposição a um periférico conectado externamente (provavelmente removível).

  • Se o valor for 0 , o dispositivo é externo.

  • Se o valor for 1 , o dispositivo é interno.

  • Se o valor não for especificado, o valor padrão será 0 para todos os dispositivos no barramento USB (BUS_USB) ou Bluetooth (BUS_BLUETOOTH), caso contrário, 1 .

Esta propriedade determina decisões de política padrão relacionadas a eventos de ativação.

Os dispositivos de entrada internos geralmente não despertam o monitor do modo de espera, a menos que sejam explicitamente configurados para fazer isso no arquivo de layout de chave ou em uma regra de política codificada. Essa distinção evita que o pressionamento de teclas e toques ativem falsamente o telefone quando ele estiver no bolso. Normalmente, há apenas um pequeno número de chaves de ativação definidas.

Por outro lado, os dispositivos de entrada externos geralmente ativam o dispositivo de forma mais agressiva porque são considerados desligados ou não conectados durante o transporte. Por exemplo, pressionar qualquer tecla em um teclado externo é um bom indicador de que o usuário deseja que o dispositivo acorde e responda.

É importante garantir que o valor da propriedade device.internal esteja definido corretamente para todos os dispositivos de entrada internos.

Validação

Certifique-se de validar seus arquivos de configuração do dispositivo de entrada usando a ferramenta Validate Keymaps .

,

Os arquivos de configuração do dispositivo de entrada (arquivos .idc ) contêm propriedades de configuração específicas do dispositivo que afetam o comportamento dos dispositivos de entrada.

Os arquivos de configuração do dispositivo de entrada normalmente não são necessários para periféricos padrão, como teclados e mouses HID, uma vez que o comportamento padrão do sistema geralmente garante que eles funcionarão imediatamente. Por outro lado, dispositivos incorporados, especialmente telas sensíveis ao toque, quase sempre exigem arquivos de configuração de dispositivos de entrada para especificar seu comportamento.

Justificativa

O Android detecta e configura automaticamente a maioria dos recursos do dispositivo de entrada com base nos tipos e propriedades de eventos relatados pelo driver de dispositivo de entrada do kernel Linux associado.

Por exemplo, se um dispositivo de entrada suportar o tipo de evento EV_REL e os códigos REL_X e REL_Y , bem como o tipo de evento EV_KEY e BTN_MOUSE , o Android classificará o dispositivo de entrada como um mouse. O comportamento padrão de um mouse é apresentar um cursor na tela que rastreia os movimentos do mouse e simula toques quando o mouse é clicado. Embora o mouse possa ser configurado de maneira diferente, o comportamento padrão geralmente é suficiente para periféricos de mouse padrão.

Certas classes de dispositivos de entrada são mais ambíguas. Por exemplo, telas sensíveis ao toque multitoque e touch pads suportam, no mínimo, o tipo de evento EV_ABS e os códigos ABS_MT_POSITION_X e ABS_MT_POSITION_Y . No entanto, os usos pretendidos destes dispositivos são bastante diferentes e nem sempre podem ser determinados automaticamente. Além disso, são necessárias informações adicionais para entender as informações de pressão e tamanho relatadas pelos dispositivos sensíveis ao toque. Conseqüentemente, os dispositivos sensíveis ao toque, especialmente as telas sensíveis ao toque integradas, geralmente precisam de arquivos IDC.

Localização

Os arquivos de configuração do dispositivo de entrada estão localizados por fornecedor USB, ID do produto (e opcionalmente versão) ou pelo nome do dispositivo de entrada.

Os seguintes caminhos são consultados em ordem.

  • /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

Ao construir um caminho de arquivo que contém o nome do dispositivo, todos os caracteres no nome do dispositivo diferentes de '0'-'9', 'a'-'z', 'A'-'Z', '-' ou '_' são substituídos por '_'.

Sintaxe

Um arquivo de configuração de dispositivo de entrada é um arquivo de texto simples que consiste em atribuições de propriedades e comentários.

Propriedades

Cada uma das atribuições de propriedade consiste em um nome de propriedade, um = , um valor de propriedade e uma nova linha. Assim:

property = value

Os nomes de propriedades são identificadores de texto literais não vazios. Eles não devem conter espaços em branco. Cada componente do sistema de entrada define um conjunto de propriedades que são utilizadas para configurar sua função.

Os valores de propriedade são literais de string não vazios, inteiros ou números de ponto flutuante. Eles não devem conter espaços em branco ou caracteres reservados \ ou " .

Os nomes e valores das propriedades diferenciam maiúsculas de minúsculas.

Comentários

As linhas de comentários começam com '#' e continuam até o final da linha. Assim:

# A comment!

As linhas em branco são ignoradas.

Exemplo

# 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...

Propriedades comuns

A propriedade a seguir é comum a todas as classes de dispositivos de entrada.

Consulte a documentação de cada classe de dispositivo de entrada para obter informações sobre as propriedades especiais usadas por cada classe.

device.internal

Definição: device.internal = 0 | 1

Especifica se o dispositivo de entrada é um componente interno integrado em oposição a um periférico conectado externamente (provavelmente removível).

  • Se o valor for 0 , o dispositivo é externo.

  • Se o valor for 1 , o dispositivo é interno.

  • Se o valor não for especificado, o valor padrão será 0 para todos os dispositivos no barramento USB (BUS_USB) ou Bluetooth (BUS_BLUETOOTH), caso contrário, 1 .

Esta propriedade determina decisões de política padrão relacionadas a eventos de ativação.

Os dispositivos de entrada internos geralmente não despertam o monitor do modo de espera, a menos que sejam explicitamente configurados para fazer isso no arquivo de layout de chave ou em uma regra de política codificada. Essa distinção evita que o pressionamento de teclas e toques ativem falsamente o telefone quando ele estiver no bolso. Normalmente, há apenas um pequeno número de chaves de ativação definidas.

Por outro lado, os dispositivos de entrada externos geralmente ativam o dispositivo de forma mais agressiva porque são considerados desligados ou não conectados durante o transporte. Por exemplo, pressionar qualquer tecla em um teclado externo é um bom indicador de que o usuário deseja que o dispositivo acorde e responda.

É importante garantir que o valor da propriedade device.internal esteja definido corretamente para todos os dispositivos de entrada internos.

Validação

Certifique-se de validar seus arquivos de configuração do dispositivo de entrada usando a ferramenta Validate Keymaps .