2011-07-21 59 views
8

Quiero desarrollar una aplicación que controle el dispositivo serial a través de usb, en Linux Android.
Un sistema operativo Android es 3.1 que admite el host USB.¿Cómo controlar un dispositivo serial en Android?

Q1: Por favor, hágame saber cómo conseguir en qué puerto está montado el dispositivo serie.

que tiene probabilidades información del dispositivo USB cuando llegué "Dump Estado del dispositivo" en Dalvik Monitor de depuración.
Y revisé/dev/tty * en dispositivos Android usando adb.
No sé cuál (/ dev/tty ??) es el dispositivo serie.

adb shell
$ ls/dev/tty *
/dev/tty
/dev/ttyFIQ0
/dev/ttyHS0
/dev/ttyHS2
/dev/ttyHS3
/dev/ttyHS4
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
/dev/ttyS3

Q2: Por favor, hágame saber cómo controlar el dispositivo serie en Android sin permiso de root.

Tengo una aplicación (exe) que puede controlar el dispositivo serie en Linux.
Traté de hacerlo en Android, pero no pude hacer por el permiso denegado.

Y, he intentado redirigir al puerto serie (tal vez)
$ ls>/dev/ttyS0
Pero no pude.
no se puede crear/dev/ttyS0: permiso denegado.

Por favor, hágamelo saber cómo controlar y acceder al dispositivo serie.

+0

Para hacer esto utilizando la capacidad de host USB de Android y su correspondiente API, debe implementar el código de controlador de serie USB en el espacio de usuario de su Aplicación. Ningún controlador o dispositivo serial "kernel" termina involucrado. –

+0

¿Qué dispositivo serial? ¡Puede haber cientos! Por favor, especifique qué es exactamente lo que quiere hacer. – not2qubit

Respuesta

0

Probar con un dispositivo rooteado ?? Al investigar lo mismo, he leído que solo unos pocos dispositivos 3.1/2.3.4 permiten el acceso no root al puerto usb.

Esto es lo que me pasa en mi HTC Desire sin raíces, 2.2:

$ ls /dev/tty* 
ls /dev/tty* 
/dev/tty 
/dev/ttyHS0 
/dev/ttyHSUSB0 
/dev/ttyHSUSB1 
/dev/ttyHSUSB2 
/dev/ttyMSM0 

Mi transformador de Asus, sin raíces, 3,2:

$ ls /dev/tty* 
ls /dev/tty* 
/dev/tty 
/dev/ttyHS1 
/dev/ttyHS2 
/dev/ttyS0 
/dev/ttyS1 
/dev/ttyS2 
/dev/ttyS3 

consigo exactamente la misma lista cuando se acopla con el teclado Dock instalado (es como 2 x puertos USB).

Espero que ayude, por favor, hágamelo saber que me encantaría poder hacer lo mismo.

+0

Todos estos presuponen la presencia de un controlador kernel, que es muy poco probable que tenga a no ser que el dispositivo esté rooteado (no es el caso aquí) o ya hay un controlador en la instalación (improbable a menos que el dispositivo no sea un teléfono/tableta común) . La respuesta correcta es implementar la lógica de serie USB en el espacio de usuario frente a la API de host USB de Android. –

3

Hay una gran revisión de esto en el hilo del foro XDA:

How to talk to the Modem with AT commands.

Ese hilo le muestra cómo enviar comandos AT (ATC) con un terminal remoto (USB conectado a su PC), pero aún no ha resuelto el problema de cómo usar un terminal local (teléfono) para hablar con el teléfono módem.

BTW. Necesita una aplicación/programa de terminal para hablar con el módem (recuerde, es una comunicación bidireccional). Es por eso que necesita un dispositivo rooteado, ya que el kit raíz generalmente viene con Busybox (que incluye un programa de terminal microcom). De lo contrario, debe escribir su propio programa.

+0

Esto aborda una pregunta muy diferente a la que realmente se hizo. –

+2

La pregunta anterior es ambigua, ya que cualquier Android puede tener cientos de dispositivos "seriales". Simplemente consulte con: 'cat/proc/tty/drivers'. – not2qubit

1

en el siguiente paso, puede probar TTY * Puerto de par de comando: $ cat/dev/tty * /para recibir los personajes de TTY y $ echo 'cadena de texto'>/dev/tty * /para enviar caracteres a tty

¡buena suerte!

Cuestiones relacionadas