0

VNC2 チップを使用して、Android タブレット用のカスタム ハードウェアに取り組んでいます。

VNC2 チップでは、私が作成したカスタム ファームウェアをフラッシュしました。USB VendorID を 0403 に、USB ProductId を 6001 に設定しました。

私が取り組んでいるAndroidアプリもあります。マニフェストの に次を追加しました。

<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />      

device_filter.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <usb-device/>
</resources>

私の目標は、USB デバイスを接続するとこのアプリが起動することです。ただし、これは機能しません。Google Play から「USB Host Controller」というツールをダウンロードしました。このアプリは、USB デバイスが接続されていることを示したので、いくつかの部分が機能しているようです。

デバイスの接続中に logcat にも出力が表示されました。

I/USB3G   (   91): event { 'add', '/devices/platform/sw_hcd_host0/usb1/1-1', 'usb', '', 189, 12 }
I/USB3G   (   91): path : '/sys/devices/platform/sw_hcd_host0/usb1/1-1'
I/USB3G   (   91): VID :size 5,vid_path '/sys/devices/platform/sw_hcd_host0/usb1/1-1/idVendor',VID  '0403
I/USB3G   (   91): '.
I/USB3G   (   91): PID :size 5,Pid_path '/sys/devices/platform/sw_hcd_host0/usb1/1-1/idProduct',PID  '6001
I/USB3G   (   91): '.
I/USB3G   (   91): cmd=/system/etc/usb_modeswitch.sh /system/etc/usb_modeswitch.d/0403_6001 &,
I/USB3G   (   91): excute ret : 0,err:No such file or directory

モードスイッチを掘り下げると、主に USB 3G モデムの状態を切り替えるツールのように見えます。私の最初の推測は、私のデバイス (Allwinner A10 ベース) に非常に不自由なイメージがあるということです。しかし、可能性は低いと思いますが、アプリのエラーである可能性もあります。私の理解によれば、OTG ハードウェアを挿入するときに、一致するインテント フィルターを使用してアプリをインストールしているかどうかに関係なく、ある種のダイアログが表示されるはずですか、それとも間違っていますか?

どんなアイデアでも大歓迎です。必要に応じて、apk を任意の方法で変更できます。タブレットはルート化されており、可能な限りファイルを変更できます。思いついたアイデアを試していただければ幸いです。

4

1 に答える 1

1

今、私はついに問題を解決しました。主な問題は、何かが起こるためにインテントフィルターを使用してアプリケーションをインストールする必要があることです。AOA (Android Open Accessories Protocol) を使用するハードウェアではダイアログが表示され、アクセサリを処理できるアプリがない場合、ダウンロードのために Google Play に誘導されるため、これは少し奇妙です。

ただし、USB ベンダーとデバイス ID に一致するインテント フィルターを備えたアプリがない場合、USB OTG デバイスは、Android デバイスに接続しても黙って無視します。テスト時に、インテント フィルターがインストールされていないアプリがありました。AOAのようなセリフが出てくると思ったのですが、ここは違いました。

OTG を動作させるために ROM に追加する必要があったのは、android.hardware.usb.host.xml を /system/etc/permissions に追加することだけでした。その後、すべてが完璧に機能しました。

于 2013-08-14T19:45:21.147 に答える