Google I/O でもらったGalaxy Tab 10.1 でADK動作できない!
ADK (Open Accessory Dev Kit) を動かす手順 - Hacking My Way 〜 itogのhack日記に書いたように、Nexus S からADKを動作させることはできた。
先日 Galaxy Tab 10.1 が3.1にアップデートされたのでこっちで試してみたが、動かなかった。。。
最新情報が入手でき次第アップデートします。
8/18 続報
Galaxy Tab 10.1, Optimus PAD (L-06C)でADK動作確認しました - Hacking My Way 〜 itogのhack日記
USB Accessory Support on 2.3.4 vs 3.1
USB Accessory は 3.1(API Level 12)でサポートされると同時に、2.3.4(API Level 10)にもバックポートされ、add-on libraryとして提供されている。
ADKのサンプルアプリであるDemoKitは add-on library を使った呼び出しをしているのでNexus one, Nexus S のような2.3.4デバイス向けにはAndroid SDKを API level 10 でビルドすれば動作するが、3.1系のタブレット端末で動作させる場合はAPI level 12にして下記の違いを修正しないといけない。
- 2.3.4
AndroidManifest.xml の
<uses-library android:name="com.android.future.usb.accessory" />
add-on library からインポート
import com.android.future.usb.UsbAccessory; import com.android.future.usb.UsbManager;
UsbManager, UsbAccessory の生成
UsbManager manager = UsbManager.getInstance(this);
UsbAccessory accessory = UsbManager.getAccessory(intent);
- 3.1
APIからインポート
import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbManager;
UsbManager, UsbAccessory の生成
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);
ところが、この変更をしたDemoKitをインストールたGalaxly Tab 10.1でADK接続してもBroadcastが飛んでこないっぽい、、、 @muo_jp @curry_man 両氏の助けを借りてGalaxy Tab 10.1 と XOOM (どちらも3.1)の動作確認をしたので挙動をまとめてみた。
Galaxy Tab, XOOM でのADK挙動
- Galaxy Tab で add-on library を呼び出した場合
Galaxy Tab には add-on library が含まれていないので、2.3.4でビルドしてDemoKitアプリを実行すると下記エラーで落ちる。add-on library は2.3.4へのバックポートなので、これが3.1に含まれないというの普通の挙動だと思う。
NoClassDefFoundError: com.android.future.usb.UsbManager
- Galaxy Tab でAPIを呼び出した場合
DemoKitアプリ時代は正常に起動するが、ADKを挿しても反応がない。
手元では未確認だが、 http://forum.xda-developers.com/showthread.php?t=1117975 によると以下のエラーが出ているらしい。
Start
Device addressed... Requesting device descriptor.
found possible device. swithcing to serial mode
Data packet error: 5could not read device protocol version
- XOOMで add-on library を呼び出した場合
なぜかこれが動く。3.1でAPIに含まれているのでadd-on libraryをサポートする必要はないと思うんだけど、互換性確保のために用意したのかな?
- XOOMでAPIを呼び出した場合
正常動作。
MicrochipのAccessoryの場合
@yokmama からMicrochipのAccessory Develop Kit + Galaxy Tab 10.1 でDemoKitが動作するとの報告をもらった。
以下サイトから購入、ファームやドキュメントの入手ができる。
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2919¶m=en546070