2013-08-08 3 views
0

Я работаю над настраиваемым оборудованием для Android-планшета с использованием чипа VNC2.Попытка заставить OTG работать на устройстве 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 

Порывшись в modeswitch это, кажется, как инструмент для переключения состояния на основном USB 3G модемов. Сначала я предполагаю, что у меня очень искалеченное изображение на моем устройстве (Allwinner A10). Но это может быть и некоторая ошибка в моем приложении, хотя я нахожу это маловероятным. По моему мнению, мне нужно предоставить какой-то диалог при вставке оборудования OTG, независимо от того, установлено ли приложение с соответствующим фильтром намерений, или я ошибаюсь?

Любые идеи будут оценены. Я могу изменить apk любым способом, если это необходимо. Планшет укоренен, и я могу изменить файлы любым способом. Будем рады попробовать любые идеи, которые у вас есть.

ответ

1

Теперь я, наконец, решил проблему. Основная проблема заключается в том, что мне нужно иметь приложение, установленное с фильтром намерений, чтобы что-то произошло. Это немного странно, поскольку аппаратное обеспечение, использующее AOA (Android Open Accessory Protocol), покажет диалог и направит вас в Google Play для загрузки, если у вас нет приложения, которое может обрабатывать аксессуар.

USB OTG устройства, тем не менее, молча игнорируют, что вы подключаете их к вашему устройству Android, если у вас нет приложения с фильтром намерения, соответствующим USB-поставщику и идентификаторам устройств. При тестировании у меня было приложение без установленного фильтра. Думал, что я получу диалог, как в AOA, но здесь я ошибся.

Единственное, что мне нужно было добавить в rom для OTG для работы, было android.hardware.usb.host.xml в/system/etc/permissions. Тогда все сработало отлично.

+0

Возможно ли быть на неуправляемом телефоне? –

+0

@RaviMehta Если отсутствует android.hardware.usb.host.xml, то вам, к сожалению, нужно root. Но USB OTG будет работать и на некорневых устройствах, если они уже настроены –

Смежные вопросы