2011-10-24 6 views
26

우리는 Android 3.1 이상 및 OTG/호스트 포트에 연결된 USB 장치를 읽고 쓸 수있는 기능을 조사했습니다.USB 장치를 Android 에뮬레이터에 연결 하시겠습니까?

USB HID 장치를 감지하고 읽고 쓸 수있는 몇 가지 코드 예제를 찾았지만 지금은 실제 3.1 + 호환 장치를 배포하고 원격으로 디버깅 할 필요가 없습니다.

누구든지 PC/Eclipse를 통해 내 HID 장치를 에뮬레이터에 부착 할 수있는 방법을 알고 있으므로 앱에서 장치를 감지하고 장치에서 읽고 쓸 수 있습니다.

나는 현재 연결된 USB 장치를 나열하려고 시도했지만 의심 할 여지없이 아무 것도 표시하지 않았습니다.

아이디어가 있으십니까?

환호

답변

6

AFAIK 이것은 가능하지 않습니다. Android 에뮬레이터는 실제 기기에있는 많은 것을 모방하지 않지만 ... attempt to run ADB over Bluetooth을 상기시킵니다.

이 질문에 대한 긍정적 인 대답은 아니지만 아마도 내가 한 것처럼 해결 방법을 찾을 수 있습니다. 실제 x86 넷북 (이중 부팅)에 "에뮬레이터"를 설치하고 참조 된 링크를 사용하십시오. my posts에서 WiFi 또는 Bluetooth를 통해 수행하려는 작업을 수행하십시오.

희망이 도움이됩니다.

+0

물론 가능합니다. – rolls

7

를 버추얼 또는이 image

연결 USB와 VM 플레이어에 안드로이드 가상 머신을 만들고 ADB 연결하여 일식과 연결 안드로이드 에뮬레이터는 QEMU를 기반으로 . 에뮬레이터 버전이 너무 오래 되었더라도 호스트에서 USB 장치를 전달할 수있는 지원이있는 것으로 보입니다. ARM 장치에는 사용할 수있는 것 같지 않지만 에뮬레이트 된 ARM 시스템에는 USB 컨트롤러가 없습니다. (나는 리눅스 USB 3.4 기반의 goldfish_armv7 커널을 위해 모든 USB 호스트 컨트롤러를 사용할 수 있도록 노력했다. 기본 에뮬레이터 goldfish_armv7 커널에는 호스트 USB가 활성화되지 않았다.)

ARM에 국한되지 않고 x86을 선택한 다음 http://www.android-x86.org/을 체크 아웃하고 해당 이미지를 표준 QEMU i386 (또는 x86_64) 컴퓨터와 함께 사용할 수 있습니다. 또한 의 KVM 확장을 사용하면 더 나은 성능을 얻을 수 있습니다. QEMU를 사용하는 경우,

emulator -avd x86-machine -qemu -usb -usbdevice host:1234:abcd 

또는 :

은 ABCD 및 장치 ID 공급 업체 ID의와 USB 장치를 통과하려면 에뮬레이터 명령을 실행할 수 있습니다

qemu-system-i386 -m 1G -cdrom android-x86.iso -usb -usbdevice host:1234:abcd 

/dev/bus/usb/XXX/YYY에 대한 읽기/쓰기 권한이 필요합니다. 예를 들어

과 같은 udev 규칙을 만들 수 있습니다.
SUBSYSTEM!="usb", GOTO="end_skip_usb" 
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="abcd", TAG+="uaccess" 
LABEL="end_skip_usb" 

이제 USB 장치를 삽입하면 에뮬레이터에서 USB 장치를 인식해야합니다. 이것은 Android x86 4가 설치된 Linux 설치에서 테스트되었습니다.3 이미지.

+0

명령'qemu-system-x86_64 -device help'는 가능한 모든 가상 장치의 이름을 나열합니다. 나는 그들을'-usb -readconfig .android/avd/intel-pch-xhci.cfg'와 같이로드한다. –

+1

-usb 장치 호스트 옵션이 Linux 전용이라는 것을 분명히하는 것이 좋을 것이라고 생각합니다. 출처 : - https://qemu.weilnetz.de/doc/qemu-doc.html - 2.3.3 USB 옵션 – Tom

+0

@Tom USB 호스트 기능은 [libusb] (http://libusb.info/)에 의존합니다. Windows에서도 지원됩니다. 과거의 QEMU에는 리눅스 의존성이 있었지만 QEMU 1.5에서는 [이 커밋] (https://git.qemu.org/?p=qemu.git;a=commit;h=2b2325ff6491224a42e1fec99b1c39fbc521c95c)으로 변경되었습니다 ([changelog ] (https://wiki.qemu.org/index.php/ChangeLog/1.5#USB)). 나는 문서가 구식이라고 생각한다. – Lekensteyn

0

내 회사의 컴퓨터가 바이오스를 잠그고 설치해야하는 vt-x 에뮬레이션을 활성화 할 수 없기 때문에 android-x86-4.0-r1-eeepc.iso from here의 이미지를 사용하여 Windows 7 호스트의 가상 박스에 android guest를 설치했습니다. 4.4 이전 버전). 그런 다음 USB 드라이브에 연결하고 VirtualBox Manager에서 VM - Settings - USB를 연 다음 오른쪽에있는 두 번째 아이콘을 클릭하고 USB 드라이브를 선택합니다. Virtualbox는 USB 드라이브 용 드라이버를 설치합니다. 완료되면 안드로이드 VM을 부팅합니다. OpenManager를 시작하고, mnt/USB에 갔으며, USB 드라이브의 파일이 거기에있었습니다!

관련 문제