Как получить пример работы ADK DemoKit на вкладке Google I / O Galaxy Tab 10.1? - PullRequest
5 голосов
/ 15 июня 2011

Я пытаюсь получить пример DemoKit , работающий на плате ADK.Кажется, что даже с обновлением 3.1 Galaxy Tab не имеет всего, что ему нужно (или, по крайней мере, не работает так, как рекламируется).И даже при копании в документации кажется, что приложение Samsung Kies, возможно, мешает.

Оно не запустится, если я буду использовать библиотеки API уровня 10 в соответствии с инструкциями (пошагово через отладчик я вижу этоисключение: java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager).То же самое происходит, если я использую библиотеки API уровня 12.

При установке цели на платформу 3.1 (просто изменив ее в свойствах проекта) она не скомпилируется (из-за использования com.android.future.usbбиблиотека).Я нашел некоторую документацию некоторые изменения , которые вы должны сделать, чтобы использовать пакет USB на 3.1, и с этого момента это изменения, которые я сделал в 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);

Даже последелая эти изменения, я столкнулся с проблемами, хотя.Он устанавливается сейчас, и на начальном экране приложения DemoKit появляется «Пожалуйста, подключите плату DemoKit», но всякий раз, когда я подключаю плату ADK и выключаю отладку USB (с ней на ней ничего не происходит), я просто получаюПриложение Samsung Kies с надписью «Нажмите клавишу возврата домой, чтобы выйти из Samsung Kies», и никакие другие кнопки не реагируют.Нажмите «Домой» и вернитесь в приложение DemoKit, просто снова отображается экран подключения, и он никогда не подключается к плате.

Как это можно сделать?Работает ли ADK с Galaxy Tab 10.1 (Google I / O edition) и если да, то я на правильном пути?

ОБНОВЛЕНИЕ

Вот что говорит последовательный монитор Arduino независимо от того, отлажена ли отладкана планшете включен или выключен режим (для считывания выходных данных необходимо установить скорость передачи 115200):

Устройство адресовано ... Запрос дескриптора устройства.

найдено возможное устройство,переключение в последовательный режим

Ошибка пакета данных: 5 не удалось прочитать версию протокола устройства

Постоянно повторяется при подключении к планшету.

ОБНОВЛЕНИЕ 2

Я понял, что не обновлял AndroidManifest.xml файл ... Изменение:

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

на

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

и

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

до

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

Похоже, что ничего не изменилось, как только я исправил это.

ОБНОВЛЕНИЕ 3

Я отправил письмо в службу поддержки Samsung и жду ответа.

Ответы [ 4 ]

6 голосов
/ 21 июня 2011

Приношу свои извинения, режим аксессуаров в настоящее время не работает с Samsung Galaxy Tab 10.1.Samsung знает об этой проблеме и работает над ее решением.Если устройство поддерживает режим аксессуаров, вы сможете использовать API-интерфейсы com.android.future.usb. *, Которые облегчат вам написание приложения, которое работает как с Android 3.1, так и с 2.3.4.

3 голосов
/ 10 августа 2011

Я только что получил новое обновление TouchWiz, и теперь Arduino считывает его обратно в последовательный порт:

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

Это выглядит намного лучше.Galaxy Tab просит запустить DemoKit, я нажму OK, и он принудительно завершает работу.Это лучше, чем было раньше.

Я обновлюсь, если у меня все заработает.

1 голос
/ 06 января 2012

My Galaxy Tab 10.1 на Android 3.1 также не имел API аксессуаров в качестве бэкпорта.Итак, я получил следующее исключение:

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

Один из способов заставить его работать на Tab 10.1 с Android 3.1 - это использовать обычный API-интерфейс аксессуаров.Не бэкпорт версия.Вы можете установить целевой SDK своих проектов DemoKit на обычный уровень API 12 (Android 3.1).

Кроме того, вам нужно изменить отрывки кода в DemoKitActivity, чтобы UsbManager и UsbAccesory были:1007 *

импорт изменяется на:

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

Манифест Android все еще может содержать следующую запись, но он больше не требуется:

<uses-library android:name="com.android.future.usb.accessory" />
1 голос
/ 19 июня 2011

Вы уверены, что используете правильную цель сборки?Вместо обычных «Android 2.3.3» (уровень 10) или «Android 3.1» (уровень 12) следует использовать цели «API Google».Если вы используете «Android SDK и AVD Manager», вы можете найти их в разделе «Доступные пакеты»> «Надстройки сторонних производителей»> «Google Inc»> «Google API от Google Inc., Android API 10» (или 12).

...