我正在使用 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 主机控制器”的工具,这个应用程序向我显示 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
深入研究 modeswitch,它似乎是一种主要在 USB 3G 调制解调器上切换状态的工具。我的第一个猜测是我的设备上有一个非常残缺的图像(基于 Allwinner A10)。但即使我觉得不太可能,这也可能是我的应用程序中的一些错误。根据我的理解,在插入 OTG 硬件时,无论我是否安装了匹配的意图过滤器的应用程序,我都应该看到某种对话框,还是我错了?
任何想法,将不胜感激。如果需要,我可以以任何方式更改 apk。平板电脑已植根,我可以以任何可能的方式更改文件。很乐意尝试您的任何想法。