前回のADKの記事で「チェックポイントは、Android側のAndroidManifest.xmlファイルにUSBアクセサリーに関係する部分を正しく書くことと、リソースのxml/accessory_filter.xmlとArduino側のAndroidAccessoryの記述を合わせること。」部分の説明が無かったので、この部分について、実例(自分で作ったAdkAppのモノ)を挙げて説明します。
まずは「Android側のAndroidManifest.xmlファイル」ですが、USBアクセサリーとしてビルド&認識されるための部分を赤で示しました。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.digick.physicom.AdkApp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="com.android.future.usb.accessory" />
<activity
android:name=".AdkAppActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" android:resource="@xml/accessory_filter" />
</activity>
</application>
</manifest>
次にAndroid側のリソースのxml/accessory_filter.xmlとArduino側のAndroidAccessoryの記述です。
それぞれ赤、緑、青の色の部分が同じである必要があります。
これら3つの値(文字列)で、接続されたアクセサリーのハードに対応するアプリ(?)を特定しているもようです。
Android側のxml/accessory_filter.xmlです。
<?xml version="1.0" encoding="utf-8"?> <resources> <usb-accessory manufacture="Physical Computing Blog" model="AdkApp" version="1.0" /> </resources>
Arduino側のAndroidAccessoryの宣言部分です。
AndroidAccessory acc("Physical Computing Blog", // 組織名
"AdkApp", // アプリ名
"AdkApp Arduino Board", // アプリ説明
"1.0", // バージョン
"https://physicom.ossantube.com", // URL
"0000000012345678" // シリアル
);
丁寧に解説記事追加ありがとうございます。
小生の場合は、雑誌記事をみて初めてトライするので、Demokitそのままです。AndroidManifest.xmlファイル、Accessory-filterの記述とDemokit.pdeの記述比較確認しましたが、一致していました。
他に原因がありそうです。もう少し調査・トライしてみます。
気になっているのが、Arduino-1.0のIDEでDemokitのコードをベリファイしたらエラーがでており、海外のサイトの記述にUSB_Host_Shield0023を使えとあって、それでやったらエラーがなくなり、ArduinoのADKにアップロードしていることです。
どうもありがとうございました。
adac5963さん
お役に立てなかったようで、申し訳ありません。
原因が判明しましたらご一報ください。