android - 如何在Android 2.2等低版本Android中使用USB设备?

标签 android usb libusb

我正在使用 Magtek 磁卡读卡器,并通过 USB 将 MCR 连接到安卓设备。当我使用 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设备吗?

最佳答案

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

关于android - 如何在Android 2.2等低版本Android中使用USB设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15964475/

相关文章:

android - 如何将首选项 Activity 添加到语言和键盘?

android - IllegalArgumentException : Navigation action/destination cannot be found from the current destination Destination [Navigation Error]

linux - 有没有办法检查 USB 驱动器是否已停止?

usb - HID 设备测试仪

libusb:通过序列号获取设备

用于列出所有 USB 存储设备的 Node.js 脚本

android - 使用 USB 将数据从平板电脑应用程序传递到 PC

android - SearchView 不搜索

usb - 通过 USB 3.0 连接路由多个 USB 2.0 连接

android - 如何避免 Firebase 数据库中的重复数据