Я пытаюсь заставить работать DemoKit на плате ADK. Кажется, что даже с обновлением 3.1 вкладка Galaxy не имеет всего, что нужно (или, по крайней мере, не работает так, как рекламируется). И даже если покопаться в документации, кажется, что приложение 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), и если да, то правильно ли я настроен?
ОБНОВИТЬ
Вот что говорит последовательный монитор Arduino, независимо от того, включен или выключен режим отладки на планшете (необходимо установить скорость передачи данных на 115200, чтобы прочитать вывод):
Устройство адресовано... Запрос дескриптора устройства.
найдено возможное устройство. переход в последовательный режим
Ошибка пакета данных: 5 не удалось прочитать версию протокола устройства
Это повторяется постоянно, пока он подключен к планшету.
ОБНОВЛЕНИЕ 2
Я понял, что не обновил файл AndroidManifest.xml
... Изменение:
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="11" />
to
<uses-sdk android:minSdkVersion="12" android:targetSdkVersion="12" />
и
<uses-library android:name="com.android.future.usb.accessory"/>
to
<uses-feature android:name="android.hardware.usb.accessory"/>
Кажется, ничего не изменилось, когда я это исправил.
ОБНОВЛЕНИЕ 3
Написал в службу поддержки Самсунг, жду ответа.