Come posso ottenere l'esempio ADK Demokit lavorando su una tab 10.1 di Google I/O Galaxy?

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

  •  28-10-2019
  •  | 
  •  

Domanda

Sto cercando di ottenere il Esempio Demokit Lavorando su una scheda ADK. Sembra anche con l'aggiornamento 3.1 Galaxy Tab Non ha tutto ciò di cui ha bisogno (o almeno non funziona come pubblicizzato). E anche con lo scavo, anche se la documentazione sembra che l'app Samsung Kies si stia mettendo in mezzo.

Non funzionerà se utilizzo le librerie di livello 10 API come indicato (passo attraverso il debugger vedo questa eccezione: java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager). La stessa cosa accade se uso le librerie di livello 12 API.

Impostazione dell'obiettivo è la piattaforma 3.1 (semplicemente modificarlo nelle proprietà del progetto) non si compilerà (a causa dell'uso del com.android.future.usb biblioteca). Ho trovato una documentazione di alcuni cambiamenti che devi fare per utilizzare il pacchetto USB su 3.1 e da quello, queste sono le modifiche che ho apportato 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);

Anche dopo aver apportato quei cambiamenti, mi sono imbattuto in questioni. Installa ora e la schermata iniziale per l'app Demokit presenta "Collega una scheda Demokit", ma ogni volta che collego la scheda ADK e disattivo il debug USB (con esso, non fa nulla), ottengo solo il App Samsung Kies che dice "Premi il tasto Home per smettere di Samsung Kies" e nessun altro pulsante risponde. Colpire a casa e tornare nell'app Demokit mostra solo di nuovo la schermata Connect e non si collega mai alla scheda.

Come si può fare per funzionare? L'ADK funziona con la Galaxy Tab 10.1 (Google I/O Edition) e, in tal caso, sono sulla traccia giusta?

AGGIORNARE

Ecco cosa dice il monitor seriale Arduino, indipendentemente dal fatto che la modalità di debug sia attiva o disattivata sul tablet (è necessario impostare il tasso di baud su 115200 per leggere l'output):

Dispositivo indirizzato ... Richiesta di descrittore di dispositivi.

Trovato dispositivo possibile. Swithcing in modalità seriale

Errore del pacchetto di dati: 5Cot non leggi la versione del protocollo del dispositivo

Si ripete costantemente mentre è collegato al tablet.

Aggiornamento 2

Mi sono reso conto di non aver aggiornato il AndroidManifest.xml File ... Modifica:

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

a

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

e

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

a

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

Non sembrava cambiare nulla una volta che ho corretto.

Aggiornamento 3

Ho inviato un'e -mail al supporto Samsung e sto aspettando una risposta.

È stato utile?

Soluzione

Le mie scuse, la modalità Accessorio attualmente non funziona con la Samsung Galaxy Tab 10.1. Samsung è a conoscenza del problema e sta lavorando per risolverlo. Quando il dispositivo supporta la modalità accessoria, è necessario utilizzare com.android.future.usb.* API che renderà più facile scrivere un'app che funziona sia con Android 3.1 che 2.3.4.

Altri suggerimenti

Ho appena ricevuto il nuovo aggiornamento touchwiz e ora Arduino lo dice alla porta seriale:

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

Questo sembra molto meglio. La tab Galaxy chiede di eseguire Demokit, ho colpito OK e la forza smette. Questo è meglio di quanto non fosse in precedenza.

Aggiornerò se lo farò funzionare completamente.

Sei sicuro di usare il giusto obiettivo di build? Invece di regolari "Android 2.3.3" (Livello 10) o "Android 3.1" (Livello 12), è necessario utilizzare gli obiettivi "API di Google". Se esegui "Android SDK e AVD Manager", puoi trovarli in pacchetti disponibili> Aggiungenti di terze parti> Google Inc> "Google API di Google Inc., API Android 10" (o 12).

Il mio Galaxy Tab 10.1 su Android 3.1 non aveva anche l'API di accessori come backport. Quindi ho ricevuto anche la seguente eccezione:

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

Un modo per portarlo a lavorare sulla scheda 10.1 con Android 3.1 è utilizzare l'API accessoria normale. Non la versione back portata. Puoi impostare i tuoi progetti Demokit Target SDK al normale livello API 12 (Android 3.1).

Inoltre, devi modificare i passaggi del codice nella demokitattività per ottenere UsbManager e Usbaccesory a:

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

Le importazioni cambiano a:

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

Il manifest Android può ancora contenere la seguente voce ma non è più richiesta:

<uses-library android:name="com.android.future.usb.accessory" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top