2013-04-12 2 views
3

Magtek 마그네틱 카드 리더로 작업 중이며 MCR을 USB로 안드로이드 장치에 연결했습니다. 내가 API (12)를 이용하고 이후는 잘 작동하지만 난 8로 API 버전을 변경할 때 충돌 및 로그 고양이 아래의 결과를 보여줄 때 :안드로이드에서 USB 장치를 사용하는 방법 안드로이드 2.2와 같은 더 낮은 버전?

04-12 11:39:39.560: E/AndroidRuntime(276): java.lang.NoClassDefFoundError: android.hardware.usb.UsbManager 
    04-12 11:39:39.560: E/AndroidRuntime(276): at com.magtek.mobile.android.libDynamag.MagTeklibDynamag.openDevice(MagTeklibDynamag.java:98) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at com.magtek.mobile.android.MagTekDemo.Dynamag.MagTekDemo.onResume(MagTekDemo.java:119) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.Activity.performResume(Activity.java:3823) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2684) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.os.Handler.dispatchMessage(Handler.java:99) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.os.Looper.loop(Looper.java:123) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at android.app.ActivityThread.main(ActivityThread.java:4627) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at java.lang.reflect.Method.invokeNative(Native Method) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at java.lang.reflect.Method.invoke(Method.java:521) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    04-12 11:39:39.560: E/AndroidRuntime(276): at dalvik.system.NativeStart.main(Native Method) 

그래서 우리는 안드로이드 2.2 USB 활성화 할 수 있으며, USB 장치를 사용합니까?

답변

8

수 없습니다. 사용할 API가 2.2에 없었습니다. 이것은 API를 변경 한 경우가 아니며, 이전에 존재하지 않았던 기능입니다. 하드웨어가 관련되어 있다는 점을 감안할 때, 코드를 작성하여 에뮬레이트 할 필요가 없습니다. 너는 단지 API 12+

4

을 공유하고 싶습니다. 우리는 USB HID 장치를 키보드 유형으로 변환하여 더 낮은 버전에서 USB 장치를 사용할 수 있습니다. 키보드에서 입력 한 것과 같이 처리 된 USB HID 장치의 입력입니다. 나는 Magtek MSR을 사용하여 CC를 스 와이프해야하고 CC 정보를 얻고 싶습니다. 그러나이 장치는 낮은 버전 때문에 USB 연결을 지원하지 않습니다.

그런 다음 USB HID를 키보드 유형으로 변경했는데 이제는 문제가 없습니다. 하지만이 장치는 변경할 수 있습니다. 그래서이 방법으로 USB 장치를 응용 프로그램에 사용하고 있습니다.