カスタム アクセサリを Android フォン (4.4.2、Slimkat および Cyanogen) に登録しようとしています。USB ホストとしてカーネル バージョン 3.8.13 の Ubuntu を実行しているリビジョン A5B の BeagleBoneBlack を使用しています。私のアクセサリーは、電話が「メディアデバイスとして接続されています」と言っており、Ubuntuでudevルールが適切に設定されているため、Androidデバイスによって認識されます。次に、libusb-1.0 API を介してアクセサリを登録します。ステップ 11 までこのガイドに従いました: http://electronicdesign.com/embedded/develop-aoa-usb-accessories-android-based-systems。詳しく言えば、
- ubuntu でホスト デバイスを開き、ファイル ハンドルを取得します。
- デバイス情報を送信するインターフェイスを要求します (メーカー、モデル、説明、バージョン、uri、およびシリアル番号)
- アクセサリ モードへの切り替え要求を送信する
- デバイス ハンドルを再割り当てする
- デバイスを回収する
これで、ホスト デバイスは Android デバイスと通信する準備が整いました。しかし、この時、私の電話にメッセージが
「この USB アクセサリで動作するインストール済みの AP はありません。...」
浮き出る。
Android アプリケーションからの accessories-filter.xml は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<usb-accessory
manufacturer="\\@4"
model="\\@4"
product-id="\\@4"
vendor-id="\\@4"
version="\\@4" />
</resources>
私のアクセサリ フィルタが間違っていると想像できましたが、ベンダー固有のアクセサリを使用した以前のプロジェクトから覚えているように、常にこの方法で使用しており、問題はありませんでした。それとも、エラーは別の場所にありますか? どうぞよろしくお願いいたします。