【问题标题】:Android devices doesn't recognize attached hardware with FTDI chipAndroid 设备无法识别带有 FTDI 芯片的附加硬件
【发布时间】:2014-05-30 18:49:23
【问题描述】:

我制作了一个 Android 应用程序,它通过 FTDI 230X 芯片与定制硬件进行通信。该应用程序工作正常并与连接的设备进行通信。但在某些手机/平板电脑上,即使手机/平板电脑支持 OTG,Android 设备也无法识别通过 OTG 连接的设备。该应用程序在至少 12 种不同的 Android 版本 4.0 到更高版本的设备上进行了测试。也许其中一半的应用程序工作正常并识别连接的硬件,而另一半看不到连接的设备。

我无法理解导致此问题的原因,因为应用程序正在使用 USB 主机 API。我还用有根和无根设备进行了测试,所以它不依赖于此。

有人知道我还应该尝试或检查什么吗?或者这个问题取决于安卓设备制造商,他们在构建操作系统时不包括对 FTDI 芯片的驱动程序支持?

【问题讨论】:

    标签: android usbserial ftdi


    【解决方案1】:

    应用程序是否验证手机/平板电脑是否支持 USB 主机?即使在宣言声明之后也要添加此验证。验证方式是使用包管理器:

    PackageManager pm = getActivity().getPackageManager();
    boolean isUSBhost = pm.hasSystemFeature(PackageManager.FEATURE_USB_HOST);
    

    如果手机/平板电脑支持主机功能,isUSBhost 将为 TRUE,否则为 FALSE。这段代码可以放在应用程序启动时(即活动),结果可用于指导后续流程。

    【讨论】:

    • 我已经在无法识别自定义硬件的手机上进行了尝试。它显示 TRUE。我的手机是 HTC Desire 500。我的第二台设备是平板电脑 Prestigio PMP7280C,这款设备还支持 USB 主机,并且可以毫无问题地识别带有 FTDI 芯片的自定义硬件。这很奇怪……
    • 三星 Galaxy Tab 3 Lite 和三星 Galaxy S4 Mini 也存在同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多