如何在Android 2.2这样的低版本中使用USB设备?
我正在使用Magtek磁卡阅读器,并通过USB将MCR与android设备连接。当我使用API 12及以后的版本时,它工作正常,但当我将API版本更改为8时,它崩溃,并在Log cat中显示以下结果:如何在Android 2.2这样的低版本中使用USB设备?,android,usb,libusb,Android,Usb,Libusb,我正在使用Magtek磁卡阅读器,并通过USB将MCR与android设备连接。当我使用API 12及以后的版本时,它工作正常,但当我将API版本更改为8时,它崩溃,并在Log cat中显示以下结果: 04-12 11:39:39.560: E/AndroidRuntime(276): java.lang.NoClassDefFoundError: android.hardware.usb.UsbManager 04-12 11:39:39.560: E/AndroidRuntim
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)
那么,我们可以启用Android 2.2 USB并使用USB设备吗?你不能。您想要使用的API在2.2中不存在。这不是他们更改API的情况,这是他们添加的以前不存在的功能。考虑到它与硬件相关,它不需要编写代码来模拟它。您只需使用API 12+我想与大家分享一点我们也可以通过将USB HID设备转换为键盘类型来使用较低版本的USB设备。USB HID设备的输入被视为从键盘输入。我必须使用Magtek MSR刷抄送,并希望获得抄送信息。但由于版本较低,设备不支持USB连接 然后我把USB HID换成了键盘,现在一切都好了。但对于这一点,该设备可以是可变的。这就是我在应用程序中使用USB设备的方式