我正在尝试让DemoKit 示例在 ADK 板上工作。似乎即使有了 3.1 更新,Galaxy Tab也没有它需要的一切(或者至少不像宣传的那样工作)。即使挖掘了文档,三星 Kies 应用程序似乎也可能会妨碍您。
如果我按照指示使用 API 级别 10 库,它将不会运行(单步调试器我看到了这个异常:)java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager
。如果我使用 API Level 12 库,也会发生同样的事情。
将目标设置为 3.1 平台(只需在项目属性中更改它)它不会编译(由于使用com.android.future.usb
库)。我找到了一些关于在 3.1 上使用 USB 包必须做的一些更改的文档,这些是我对 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 调试(它在它上面,它什么都不做)时,我只是得到三星凯斯应用程序显示“按主页键退出三星凯斯”,但没有其他按钮响应。回家并返回 DemoKit 应用程序只是再次显示连接屏幕,它从未真正连接到电路板。
如何使它起作用?ADK 是否适用于 Galaxy Tab 10.1(Google I/O 版),如果适用,我是否走在正确的轨道上?
更新
这是 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
我已向三星支持发送电子邮件,正在等待回复。