삼성 갤럭시 타블렛에서 USB 호스트 기능을 활용하려고합니다. 삼성 (http://www.samsung.com/us/mobile/galaxy-tab-accessories/EPL-1PL0BEGSTA)에서 첨부 동글을 구입했습니다. 처음에이 동글을 통해 USB 장치를 연결했을 때 나는 은하계 태블릿에서 고전력 오류가있었습니다 - FYI는 외부에서 전원이 공급되는 USB 허브를 사용하고 있으며 이것을 바이 패스 할 수 있습니다.삼성 Galaxy 10.1 태블릿에서 Android USB 호스트 문제
첨부 할 때 장치 자체가 USB 주변 기기의 존재를 인정하므로 Android의 android.hardware.usb.UsbDevice를 사용하려고했습니다. import android.hardware.usb.UsbManager; 도서관. 나는 이상한 어떤 장치를 연결할 때이 어떤 의도를 발사되지
IntentFilter usbIntentFilter = new IntentFilter();
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_ATTACHED");
usbIntentFilter.addAction("android.hardware.usb.action.USB_DEVICE_DETACHED");
registerReceiver(mUsbReceiver,usbIntentFilter);
를 통해 의도를 수신하는 방송 수신기를 등록 USB 장치를 인식하는 두 가지 방법이 확인 ...이 있다는 것을 보았다. 그래서 다음 방법을 시도했다 : 명시 적으로 UsbManager를 통해 장치 목록에 대한 질의 - 다음과 같이이 이루어졌다 :
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
int count = deviceList.size();
Iterator<UsbDevice> iterator = deviceList.values().iterator();
if(iterator.hasNext()){
UsbDevice deviceVal = iterator.next();
testTxtView1.setText("set device " + deviceVal);
}
이것은 아마도 하나를 잡아 것 (하나의 USB 장치가 현재 Google 문서 당 지원) 현재 연결된 USB 장치. 이것을 테스트하기 위해 버튼 클릭시 위의 코드를 호출하고 장치 결과를 표시합니다. 어떤 이유로 든 USB 동글이 연결되어 있는지 여부에 관계없이 매번 장치 목록에서 장치를 가져옵니다. 또한이 장치는 USB 동글 (또는 동봉 품 없음)에 관계없이 매번 동일합니다.
장치 usbDevice [mName =/dev/bus/usb/001/002, mVendorId = 1256, mProductId = 27033, mClass = 0, mSubClass = 0, mProtocol = 0, mInterfaces = [Landroid .os.Parcelable; @ 406ff4d8]를 @ 406ff4d8 값 ^^
가 (난 그냥 그것의 단일 인스턴스를 넣어)이 코드를 조회 할 때마다 변경이
나는 모든 곳에서 검색하고 수 없었다 내 상황에 적용될 수있는 유사한 문제 또는 해결책을 찾으십시오. 나는 Google의 USB 예제를 구현하려고 시도했는데 (정확히 본질적으로, 나는 그것들을 찢어 버렸다) 이러한 문제에 부딪 히고있다.
나는 또한 내 매니페스트의 메이크업 언급해야한다 :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.mit.ll.drm4000"
android:versionCode="1"
android:versionName="1.0">
<uses-feature android:name="android.hardware.usb.host" />
<uses-sdk android:minSdkVersion="12" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DRM4000Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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" />
</activity>
</application>
및 장치 필터 :
이 문제에 대한 도움을 많이 주시면 감사하겠습니다!
또 다른 업데이트 : 불평 장치는 약 항상 장치 목록에 열거 된
장치 usbDevice [MNAME =는/dev/버스/USB// 002 001, mVendorId = 1256, mProductId = 27033, mClass = 0, mSubClass = 0, mProtocol = 0, mInterfaces = [Landroid.os.Parcelable, @ 406ff4d8]
은 안드로이드 쪽 USB 포트 또는 다른 것이어야합니다.내 코드에 여러 장치를 연결하기 시작했기 때문에 (이 링크와 유사 : USB_DEVICE_ATTACHED Intent not firing) HID 장치, arduino 장치 및 슬프게도 ... USB 장치가 의도를 실행하거나 열거 된 것으로 나타나지 않습니다. USB 허브. USB 플래시 드라이브를 사용해 보았지만 열거하고 작동했습니다 ... 그러나 목록에있는 두 번째 장치로 표시됩니다. 첫 번째 장치는 위에 나열된 USB 장치입니다. 의향은 그것으로 불을 낸다.
일부 안드로이드 선택을 제외하고 HID 장치 및 다른 USB 장치로 인 텐트를 만드는 것에 대한 해결 방법을 아는 사람이 있습니까?
다른 응용 프로그램에서 USB 호스트가 작동하는지 확인할 수 있습니까? PTP 카메라를 연결하고 갤러리가 방송중인 의도를 알았는지 확인하십시오. 재부팅을 시도하고 Tab을 최신 버전으로 업데이트했다고 가정합니다. –
키보드를 연결하면 작동하는 것 같습니다. 나는 그것을 연결할 때 "USB 장치 연결"메시지가 나타납니다. 그러나 위의 코드는 키보드 나 다른 USB 장치가 연결되어 있거나 아무것도 연결되어 있지 않은 동일한 출력을 제공합니다. USB 장치에 관계없이.나는 키보드가 잘된 것으로부터 내 코드가 있어야한다는 것을 알고있다. BTW : 다른 장치를 연결할 때 "Unknown USB Device Connected"라고 표시됩니다. – hinklecw
다른 업데이트 : 장치 목록에서 항상 열거되는 것에 대해 불만을 표시 한 장치는 안드로이드 USB 포트 또는 다른 장치 여야합니다. 장치를 내 코드에 추가하면 (USB_DEVICE_ATTACHED 인 텐트가 실행되지 않음) HID 장치, arduino 장치 및 USB 장치가 의도를 실행하거나 USB 허브에 의해 열거되지 않습니다. USB 플래시 드라이브를 사용해 보았지만 열거하고 작동했습니다 ... 그러나 목록에있는 두 번째 장치로 표시됩니다. 첫 번째 장치는 위에 나열된 USB 장치입니다. 의향은 그것으로 불을 낸다. – hinklecw