Android设备无法通过FTDI芯片识别连接的硬件

Jos*_*sef 6 android usbserial ftdi

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

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

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

Sun*_*nGa 2

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

PackageManager pm = getActivity().getPackageManager();
boolean isUSBhost = pm.hasSystemFeature(PackageManager.FEATURE_USB_HOST);
Run Code Online (Sandbox Code Playgroud)

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

  • 我已经在无法识别自定义硬件的手机上尝试过此操作。它显示为真。我的手机是 HTC Desire 500。我的第二台设备是平板电脑 Prestigio PMP7280C,该设备还具有 USB 主机支持,并且可以使用 FTDI 芯片识别我的自定义硬件,没有任何问题。真奇怪... (3认同)