5

ADK ボードで動作するDemoKit サンプルを取得しようとしています。3.1 の更新があっても、Galaxy Tabには必要なものがすべて揃っているわけではないようです (または、少なくとも宣伝どおりには機能しません)。また、ドキュメントを掘り下げても、Samsung Kies アプリが邪魔をしているようです。

指示どおりに API レベル 10 ライブラリを使用しても実行されません (デバッガーをステップ実行すると、この例外が表示されます: java.lang.NoClassDefFoundError: com.android.future.usb.UsbManager)。API レベル 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 デバッグをオフにするたびに (それがオンになっていると何もしません)、 「ホームキーを押して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" />

<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

サムスンのサポートにメールを送信し、返信を待っています。

4

4 に答える 4

6

申し訳ありませんが、アクセサリ モードは現在、Samsung Galaxy Tab 10.1 では機能しません。Samsung はこの問題を認識しており、解決に取り組んでいます。デバイスがアクセサリ モードをサポートしている場合は、com.android.future.usb.* API を使用できる必要があります。これにより、Android 3.1 と 2.3.4 の両方で動作するアプリを簡単に作成できます。

于 2011-06-20T22:18:58.973 に答える
3

新しい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 を押すと強制終了します。これは以前よりも優れています。

完全に機能するようになったら更新します。

于 2011-08-10T04:55:39.630 に答える
1

適切なビルドターゲットを使用していますか?通常の「Android2.3.3」(レベル10)または「Android3.1」(レベル12)の代わりに、「GoogleAPI」ターゲットを使用する必要があります。「AndroidSDKandAVD Manager」を実行している場合は、「利用可能なパッケージ」>「サードパーティのアドオン」>「GoogleInc」>「GoogleAPI by Google Inc.、Android API10」(または12)にあります。

于 2011-06-19T00:27:02.813 に答える
1

私の Android 3.1 上の Galaxy Tab 10.1 には、バックポートとしてのアクセサリ API もありませんでした。したがって、次の例外も発生しました。

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

Android 3.1 を搭載した Tab 10.1 で動作させる 1 つの方法は、通常のアクセサリ API を使用することです。バックポートされたバージョンではありません。DemoKit プロジェクトのターゲット SDK を通常の API レベル 12 (Android 3.1) に設定できます。

さらに、DemoKitActivity のコード パッセージを変更して、UsbManager と UsbAccesory を取得する必要があります。

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

インポートは次のように変更されます:

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

Android マニフェストには引き続き次のエントリを含めることができますが、必要なくなりました。

<uses-library android:name="com.android.future.usb.accessory" />
于 2012-01-06T12:00:22.737 に答える