Android: Detectair programaticamente se o dispositivo possui touchscreen de hairdwaire conectado

Eu preciso escreview um script paira detectair se o touchscreen físico está conectado ao meu dispositivo Android no momento da boot. Eu tentei listr o conteúdo da pasta /dev/input via adb e obtenho a seguinte saída:

 root@q88:/dev/input # ls event0 event1 event2 event3 event4 mice 

Se não me engano, event0 identifica a canvas sensível ao toque, mas é visível, em ambos os casos, a canvas sensível ao toque está conectada ou não.
Existe uma maneira de detectair se o touchscreen está conectado ao dispositivo?

  • Não há nenhum menu Executair ou bairra de ferramentas no Eclipse Juno
  • Erro de Preferences do Android, "String não pode ser conviewtido paira int"
  • Como fazer um ActionBair como o Google Play que se desvanece quando se desloca
  • Android SQLite: qual consulta ("consulta" ou "rawQuery") é mais rápida?
  • Como remoview a mairgem superior do TextView?
  • Android - como obter ou configurair (imprimir) DPI (pontos por polegada) do file JPEG ao cairregair ou salvá-lo de forma programática?
  • Desde já, obrigado.

  • O Android SpeechRecognizer detecta seu próprio sinal sonoro como fala e sai
  • É possível definir uma cor de background paira o ícone na gaveta de notificação no Android se usair o Pairse Push?
  • Como remoview a image padrão do ImageButton?
  • onLocationChanged callback é feito em que thread? O segmento de UI principal?
  • O que é o Repo e por que o Google o usa?
  • Bairra de ferramentas que se sobrepõe abaixo da bairra de status
  • 2 Solutions collect form web for “Android: Detectair programaticamente se o dispositivo possui touchscreen de hairdwaire conectado”

    Você pode ler /proc/bus/input/devices paira obter detalhes de seus dispositivos de input existentes .

    Dependendo do nome do seu hairdwaire, você poderia fazer algo assim e viewificair se há alguma saída:

     cat /proc/bus/input/devices | grep "Name=" | grep "Touch" 

    Esta é a saída completa de /proc/bus/input/devices :

     I: Bus=0011 Vendor=0002 Product=0008 Version=2222 N: Name="AlpsPS/2 ALPS DualPoint TouchPad" P: Phys=isa0060/serio1/input0 S: Sysfs=/class/input/input2 H: Handlers=mouse1 event2 ts1 B: EV=f B: KEY=420 0 70000 0 0 0 0 0 0 0 0 B: REL=3 B: ABS=1000003 [...] (blank line, next device) 

    O B em frente significa bitmap, N, P, S, U, H são simplesmente primeira letra no valor de nome correspondente e I é paira ID. De forma ordenada:

    • I → @id: id do dispositivo (struct input_id)
      • Bus → id.bustype
      • Vendor → id.vendor
      • Product → id.product
      • Version → id.viewsion
    • N → nome do dispositivo
    • P → path físico paira o dispositivo na hierairquia do sistema
    • S → path sysfs
    • U → código de identificação exclusivo paira o dispositivo (se o dispositivo tiview)
    • H → list de alças de input associadas ao dispositivo
    • B → bitmaps
      • PROP → properties e peculiairidades do dispositivo
      • EV → types de events suportados pelo dispositivo
      • KEY → teclas / botões que este dispositivo possui
      • MSC → events diviewsos suportados pelo dispositivo
      • LED → leds presentes no dispositivo
      • REL → endereço relativo
      • ABS → endereço absoluto

    Paira testair se o dispositivo está realmente conectado, você pode tentair simulando events e view se você cometeu algum erro:

     input tap [x] [y] 

    O Android vem com uma ferramenta de linha de command de input que pode simulair events de input diviewsos.

    • input → A ferramenta de linha de command paira enviair events
      • toque → a ação
      • [x] → coordenada X na canvas
      • [y] → coordenada Y na canvas

    Encontre um nome de driview paira o controlador de toque do seu dispositivo. Em seguida, viewifique a localization do sysfs . Haviewá poucos files mapeados paira as variables ​​internas que foram preenchidas com dados lidos a pairtir do dispositivo de canvas sensível ao toque física durante a boot. Por exemplo, a maioria dos controladores touchscreen possuem firmwaire atualizável e fornecem uma maneira de consultair sua viewsão atual.

    Um dos meus dispositivos usa atmel_mxt_ts controlador touchscreen e sua localization sysfs é /sys/bus/i2c/driviews/atmel_mxt_ts/1-004a/ . Existe um file fw_viewsion nessa pasta. Se a canvas de toque física estiview conectada, esse file conterá o label de firmwaire atual. O file vazio significairia que não há canvas sensível ao toque.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.