Wie kann ich das ADK Demokit -Beispiel auf einem Google I/O Galaxy Tab 10.1 zum Laufen bringen?

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

  •  28-10-2019
  •  | 
  •  

Frage

Ich versuche das zu bekommen Demokit Beispiel Arbeiten an einem ADK -Board. Es scheint sogar mit dem 3.1 aktualisieren die Galaxy Tab Hat nicht alles, was es braucht (oder funktioniert zumindest nicht wie angekündigt). Und selbst beim Graben, obwohl die Dokumentation so aussieht, als ob die Samsung Kies -App möglicherweise im Weg steht.

Es wird nicht ausgeführt, wenn ich die API Level 10 -Bibliotheken wie angewiesene verwende (durch den Debugger treten Ich sehe diese Ausnahme: java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager). Das gleiche passiert, wenn ich die API -Level -12 -Bibliotheken verwende.

Festlegen des Ziels auf die 3.1 -Plattform (einfach in den Projekteigenschaften ändert) wird nicht kompiliert (aufgrund der Verwendung des com.android.future.usb Bibliothek). Ich fand eine Dokumentation von einige Veränderungen dass Sie tun müssen, um das USB -Paket auf 3.1 zu verwenden, und daraus sind dies die Änderungen, die ich an Demokitaktivität vorgenommen habe.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);

Selbst nachdem ich diese Veränderungen vorgenommen habe, habe ich jedoch Probleme gestoßen. Es wird jetzt installiert und der erste Bildschirm für die Demokit -App erstellt das "Bitte verbinden Samsung Kies App mit "Drücken Sie die Heimtaste, um Samsung Kies zu verlassen" und keine anderen Tasten antworten. Wenn Sie nach Hause gedrückt werden und in die Demokit -App zurückkehren, wird nur wieder den Connect -Bildschirm angezeigt und es wird nie wirklich eine Verbindung zum Board hergestellt.

Wie kann das zur Arbeit gemacht werden? Funktioniert das ADK mit dem Galaxy Tab 10.1 (Google I/O Edition) und wenn ja, bin ich auf dem richtigen Weg?

AKTUALISIEREN

Der Arduino Serial Monitor sagt, unabhängig davon, ob der Debug -Modus auf dem Tablet ein- oder ausgeschaltet ist (müssen die Baudrate auf 115200 festlegen, um die Ausgabe zu lesen):

Gerät angesprochen ... Anforderungsgerätedeskriptor.

Mögliches Gerät gefunden. Schwanz in den Seriennodus

Data -Paket -Fehler: 5 kann nicht die Geräteprotokollversion lesen

Es wiederholt sich ständig, während es in das Tablet angeschlossen ist.

Update 2

Mir wurde klar, dass ich das nicht aktualisiert habe AndroidManifest.xml Datei ... ändern:

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

zu

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

und

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

zu

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

Es schien nichts zu ändern, als ich das korrigiert habe.

Update 3

Ich habe Samsung Support per E -Mail gesendet und warte auf eine Antwort.

War es hilfreich?

Lösung

Ich entschuldige mich, der Zubehörmodus funktioniert derzeit nicht mit dem Samsung Galaxy Tab 10.1. Samsung ist sich des Problems bewusst und arbeitet daran, es zu lösen. Wenn das Gerät den Zubehörmodus unterstützt, sollten Sie in der Lage sein, die APIs com.android.future.usb zu verwenden, die es Ihnen erleichtern, eine App zu schreiben, die sowohl mit Android 3.1 als auch 2.3.4 funktioniert.

Andere Tipps

Ich habe gerade das neue Touchwiz -Update erhalten und jetzt liest der Arduino dies zurück zum Serienport:

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

Das sieht viel besser aus. Auf der Registerkarte Galaxy werden Demokit ausgeführt, ich habe OK geschlagen und sie zwang zu, beendet zu werden. Dies besser als zuvor.

Ich werde aktualisieren, wenn ich es vollständig funktioniert.

Sind Sie sicher, dass Sie das richtige Build -Ziel verwenden? Anstelle von regulären "Android 2.3.3" (Stufe 10) oder "Android 3.1" (Stufe 12) sollten Sie "Google -APIs" -Ziele verwenden. Wenn Sie "Android SDK und AVD Manager" ausführen, finden Sie sie unter verfügbaren Paketen> Add-Ons> Google Inc> "Google APIs von Google Inc., Android API 10" (oder 12).

Mein Galaxy Tab 10.1 auf Android 3.1 hatte nicht auch die Accessoires -API als Backport. Also habe ich auch die folgende Ausnahme bekommen:

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

Eine Möglichkeit, es mit Android 3.1 auf den Tab 10.1 zu bringen, besteht darin, die reguläre Accessoire -API zu verwenden. Nicht die zurückportierte Version. Sie können Ihre Demokit -Projekte auf SDK auf die reguläre API -Stufe 12 (Android 3.1) einstellen.

Außerdem müssen Sie die Code -Passagen in der Demokitaktivität ändern, um den USBManager und den USBACCESORY zu::

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

Importe ändern sich zu:

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

Das Android -Manifest kann immer noch den folgenden Eintrag enthalten, ist jedoch nicht mehr erforderlich:

<uses-library android:name="com.android.future.usb.accessory" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top