2

私が構築した USB デバイス (dsPIC33E 電源) を一般的な 7 インチ A13-MID アンドロイドに接続しています。

LogCat を実行して TCPIP 経由で ADB を使用しています。

デバイスを接続すると、LogCat に次のように表示されます。

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

MissileLauncher Demo をデバッグ モード ADT で実行しています。

Fire にブレークポイントを設定できます。Fire ボタンを押すと、そこでコードが中断されます (デバッグは機能しています)。

device_filter.xml で Product-ID と Vendor-ID を正しい値に設定しました。

次に、ここにブレークポイントを設定します。

UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(action)) {
    setDevice(device);
} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
    if (mDevice != null && mDevice.equals(device)) {
        setDevice(null);
    }
}

休憩の後にコードをステップスルーすると、インテント。行は実行されますが、次の if ステートメントは入力されておらず、setDevice(device)呼び出されることはありません (どちらもありませんsetDevice(null))。

setDevice(device) が呼び出されると思っていました。結局、私はデバイスを接続し、Android は私が接続したことを認識し (上記の LogCat を参照)、device_filter.xml を正しく設定しました。

私は何が欠けていますか?

その他の情報として、「USB デバイス」をインストールしたアプリにデバイスが表示されますが、[Linux] タブに一覧表示されます。それが私にとって悪いニュースでないことを願っています!

ありがとう、デール

デバイスを個別に列挙しようとしましたが、「はい」はありませんでした (実際、HashMap にはデバイスが返されませんでした)。

HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while(deviceIterator.hasNext()){
    UsbDevice device1 = deviceIterator.next();
    //your code
    if (device1.getVendorId()==1240) {
        savetofile("Yeah!");
    }
} 

これが関連しているかどうかはわかりませんが、Androidはルート化されており、そのようになりました。

4

1 に答える 1

0

root 権限を使用して、この回答済みの質問で見つけた変更を行う必要があることが判明しました。

Android USB ホストと隠しデバイス

私は正しい軌道に乗っていましたが、今では:)再びです。他の誰かが、この答えが役に立つと思う私の探求を見つけると確信しています.

ただし、HashMap 列挙メソッドのみが機能し、インテント フィルター メソッドは引き続きアクションを android.intent.action.MAIN として返します。

ご意見ありがとうございます。

デール

于 2013-01-16T19:52:24.257 に答える