¿Cómo puedo hacer que el ejemplo de Demokit de ADK funcione en una galaxia de I/O de Google Tab 10.1?

StackOverflow https://stackoverflow.com/questions/6355031

  •  28-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de conseguir el Ejemplo de demanda Trabajando en un tablero de ADK. Parece que incluso con la actualización 3.1 el Tab Galaxy No tiene todo lo que necesita (o al menos no funciona como se anuncia). E incluso con la excavación, aunque la documentación parece que la aplicación Samsung Kies posiblemente se está interpusiendo.

No se ejecutará si uso las bibliotecas API de nivel 10 según las instrucciones (atravesando el depurador, veo esta excepción: java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager). Lo mismo sucede si uso las bibliotecas API de nivel 12.

Establecer el objetivo para que sea la plataforma 3.1 (simplemente cambiándolo en las propiedades del proyecto) no se compilará (debido al uso del com.android.future.usb biblioteca). Encontré alguna documentación de algunos cambios que debe hacer para usar el paquete USB en 3.1 y de eso, estos son los cambios que hice a Demokitactivity.java

37,38c37
< import com.android.future.usb.UsbAccessory;
< import com.android.future.usb.UsbManager;
---
> import android.hardware.usb.*;
128c127
< UsbAccessory accessory = UsbManager.getAccessory(intent);
---
> UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);
139c138
< UsbAccessory accessory = UsbManager.getAccessory(intent);
---
> UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);
152c151
< mUsbManager = UsbManager.getInstance(this);
---
> mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);

Sin embargo, incluso después de hacer esos cambios, me he encontrado con problemas. Se instala ahora y la pantalla inicial para la aplicación Demokit se le ocurre el "por favor conecte una placa de demanda", pero cada vez que conecto la placa ADK y apago la depuración USB (con ella, no hace nada), solo obtengo el Aplicación Samsung Kies que dice "Presione la tecla Inicio para dejar Samsung Kies" y ningún otro botón responde. Llegar a casa y volver a la aplicación Demokit solo muestra la pantalla de conexión nuevamente y nunca se conecta realmente a la placa.

¿Cómo se puede hacer que esto funcione? ¿Funciona el ADK con la Galaxy Tab 10.1 (edición de E/S de Google) y, de ser así, estoy en el camino correcto?

ACTUALIZAR

Esto es lo que el Monitor de serie Arduino dice independientemente de si el modo de depuración está encendido o desactivado en la tableta (debe establecer la velocidad de baudios en 115200 para leer la salida):

Dispositivo de dispositivo ... solicitando el descriptor del dispositivo.

encontrado posible dispositivo. Swithcing al modo serie

Error del paquete de datos: 5 no se pueden leer la versión del protocolo del dispositivo

Se repite constantemente mientras está conectado a la tableta.

Actualización 2

Me di cuenta de que no actualizaba el AndroidManifest.xml Archivo ... Cambio:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="11" />

a

<uses-sdk android:minSdkVersion="12" android:targetSdkVersion="12" />

y

<uses-library android:name="com.android.future.usb.accessory"/>

a

<uses-feature android:name="android.hardware.usb.accessory"/>

No parecía cambiar nada una vez que me corrigí.

Actualización 3

Le envié un correo electrónico a Samsung Support y estoy esperando una respuesta.

¿Fue útil?

Solución

Mis disculpas, el modo accesorio actualmente no funciona con la Tab 10.1 de Samsung Galaxy. Samsung es consciente del problema y está trabajando para resolverlo. Cuando el dispositivo admite el modo de accesorio, debe poder usar el com.android.future.usb.* API que le facilitará escribir una aplicación que funcione con Android 3.1 y 2.3.4.

Otros consejos

Acabo de recibir la nueva actualización de TouchWiz y ahora el Arduino lee esto al puerto serie:

Device addressed... Requesting device descriptor.found possible device. swithcing to serial mode
device supports protcol 1

Device addressed... Requesting device descriptor.found android acessory device
config desc
interface desc
inEp: 1
outEp: 2

Esto se ve mucho mejor. La Tab Galaxy le pide que ejecute Demokit, presiono OK y Force. Esto mejor de lo que era anteriormente.

Actualizaré si lo hago funcionar completamente.

¿Estás seguro de que estás usando el objetivo de compilación correcto? En lugar de regularmente "Android 2.3.3" (Nivel 10) o "Android 3.1" (Nivel 12), debe usar objetivos "Google API". Si ejecuta "Android SDK y AVD Manager", puede encontrarlos en paquetes disponibles> ADMINISTROS DE TERCERES> Google Inc> "Google API de Google Inc., Android API 10" (o 12).

Mi Galaxy Tab 10.1 en Android 3.1 no tenía la API de accesorios como backport también. Así que también obtuve la siguiente excepción:

java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager

Una forma de llevarlo a funcionar en la pestaña 10.1 con Android 3.1 es usar la API accesoria regular. No la versión retroportada. Puede establecer su SDK de Target de DemoKit Projects en el Nivel API regular 12 (Android 3.1).

Además, debe cambiar los pasajes del código en la DemokitActivity para obtener el USBManager y la Usbaccesión:

UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);

El cambio de importación a:

import android.hardware.usb.UsbAccessory;
import android.hardware.usb.UsbManager;

El manifiesto de Android aún puede contener la siguiente entrada, pero ya no es necesario:

<uses-library android:name="com.android.future.usb.accessory" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top