File di configurazione del dispositivo di input

I file di configurazione dei dispositivi di input (file .idc) contengono proprietà di configurazione specifiche del dispositivo che influiscono sul comportamento dei dispositivi di input.

I file di configurazione dei dispositivi di input in genere non sono necessari per le periferiche standard come tastiere e mouse HID, poiché il comportamento predefinito del sistema garantisce in genere che funzionino immediatamente. D'altra parte, i dispositivi incorporati integrati, in particolare i touchscreen, quasi sempre richiede che i file di configurazione dei dispositivi di input specifichino il loro comportamento.

Motivazione

Android rileva e configura automaticamente la maggior parte delle funzionalità del dispositivo di input in base ai tipi di eventi e alle proprietà segnalati dall'inserzionista Driver del dispositivo di input del kernel Linux.

Ad esempio, se un dispositivo di input supporta il tipo di evento EV_REL e i codici REL_X e REL_Y, nonché il tipo di evento EV_KEY e BTN_MOUSE, Android classificherà il dispositivo di input come mouse. Il comportamento predefinito del mouse è presentare un cursore sullo schermo che ne tiene traccia e simula i tocchi quando viene fatto clic con il mouse. Sebbene il mouse possa essere configurati in modo diverso, il comportamento predefinito è in genere sufficiente periferiche per mouse standard.

Alcune classi di dispositivi di input sono più ambigue. Ad esempio, multi-touch i touch screen e i touchpad supportano il tipo di evento e i codici EV_ABS ABS_MT_POSITION_X e ABS_MT_POSITION_Y come minimo. Tuttavia, il previsto gli utilizzi di questi dispositivi sono molto diversi e non sempre possono essere determinati automaticamente. Inoltre, sono necessarie ulteriori informazioni per dare un senso al informazioni su pressione e dimensioni riportate dai dispositivi touch. Pertanto, i dispositivi touch, in particolare i touchscreen integrati, in genere richiedono file IDC.

Posizione

I file di configurazione dei dispositivi di input si trovano per fornitore USB, prodotto (e facoltativamente versione) o tramite il nome del dispositivo di input.

I seguenti percorsi vengono consultati in ordine.

  • /product/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system_ext/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /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
  • /product/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system_ext/usr/idc/Vendor_XXXX_Product_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
  • /product/usr/idc/device-name.idc
  • /system_ext/usr/idc/device-name.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

Quando crei un percorso file che contiene il nome del dispositivo, tutti i caratteri nel nome del dispositivo diverso da "0"-"9", "a"-"z", "A"-"Z", "-" o "_" sono sostituiti da "_".

Sintassi

Un file di configurazione del dispositivo di input è un file di testo normale composto da proprietà compiti e commenti.

Proprietà

Le assegnazioni delle proprietà sono composte da un nome di proprietà, un =, un valore di proprietà e una nuova riga. in questo modo:

property = value

I nomi delle proprietà sono identificatori di testo letterali non vuoti. Non devono contenere uno spazio vuoto. Ogni componente del sistema di input definisce un insieme di proprietà utilizzati per configurare la sua funzione.

I valori delle proprietà sono letterali di stringa non vuoti, numeri interi o numeri in virgola mobile. Non devono contenere spazi vuoti né i caratteri riservati \ o ".

I nomi e i valori delle proprietà sono sensibili alle maiuscole.

Commenti

Le righe di commento iniziano con "#" e continuano fino alla fine della riga. in questo modo:

# A comment!

Le righe vuote vengono ignorate.

Esempio

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

Proprietà comuni

La seguente proprietà è comune a tutte le classi di dispositivi di input.

Per informazioni su ciascun tipo di dispositivo di input, consulta la documentazione proprietà speciali utilizzate da ogni classe.

device.internal

Definizione: device.internal = 0 | 1

Specifica se il dispositivo di input è un componente integrato interno anziché un periferica collegata esternamente (molto probabilmente rimovibile).

  • Se il valore è 0, il dispositivo è esterno.

  • Se il valore è 1, il dispositivo è interno.

  • Se il valore non è specificato, il valore predefinito è 0 per tutti i dispositivi sul bus USB (BUS_USB) o Bluetooth (BUS_BLUETOOTH), 1 in caso contrario.

Questa proprietà determina le decisioni predefinite relative ai criteri relativi agli eventi di attivazione.

I dispositivi di input interni generalmente non riattivano il display dalla sospensione a meno che non esplicitamente configurati nel file di layout delle chiavi o in una regola dei criteri hardcoded. Questo poiché ciò impedisce alla pressione di tasti e tocchi di riattivare il telefono quando è in tasca. Di solito sono definite solo poche chiavi di attivazione.

Al contrario, i dispositivi di input esterni di solito riattivano il dispositivo in modo più aggressivo perché si presume che siano spenti o non collegati durante il trasporto. Ad esempio, premere un tasto su una tastiera esterna è un buon indicatore del fatto che l'utente vuole che il dispositivo si risvegli e risponda.

È importante assicurarsi che il valore della proprietà device.internal sia impostato correttamente per tutti i dispositivi di input interni.

Convalida

Assicurati di convalidare i file di configurazione del dispositivo di input utilizzando lo strumento Convalida mappa tasti.