3

我正在使用 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/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 设备吗?

4

2 回答 2

8

你不能。您要使用的 API 在 2.2 中不存在。这不是他们更改 API 的情况,这是他们添加的一个以前不存在的功能。鉴于它与硬件相关,它不是编写代码来模拟它的问题。您只需要使用 API 12+

于 2013-04-12T06:29:13.673 回答
4

我想分享一下,我们也可以通过将 USB HID 设备转换为键盘类型来使用较低版本的 USB 设备。来自 USB HID 设备的输入被视为从键盘输入。我必须使用 Magtek MSR 刷 CC 并想要获取 CC 信息。但由于版本较低,设备不支持 USB 连接。

然后我只是将 USB HID 更改为键盘类型,现在一切都很好。但是为此,该设备可以更改。所以这就是我在我的应用程序中使用 USB 设备的方式。

于 2013-05-07T05:16:14.367 回答