我做了一个Android应用程序,可以通过FTDI 230X芯片与定制的硬件进行通信。该应用程序工作正常,并可与连接的设备通信。但在一些手机/平板电脑上,Android设备不能识别通过OTG连接的设备,甚至手机/平板电脑也支持OTG。该应用程序在至少12种不同的设备上进行了测试,从Android 4.0版到更新版本。也许其中一半的应用程序工作正常,可以识别连接的硬件,而另一半则看不到连接的设备。
我不能理解是什么导致了这个问题,因为应用程序正在使用USB主机API。另外,我用有根设备和无根设备进行了测试,所以它不依赖于此。
有没有人知道我还应该尝试或检查什么?或者这个问题取决于android设备制造商,他们在构建操作系统时没有包括对FTDI芯片的驱动程序支持?
发布于 2014-06-01 03:37:29
应用程序是否验证手机/平板电脑上是否支持USB主机?即使在宣言声明之后,也要添加这种验证。验证的方法是使用包管理器:
PackageManager pm = getActivity().getPackageManager();
boolean isUSBhost = pm.hasSystemFeature(PackageManager.FEATURE_USB_HOST);如果电话/平板电脑支持主机功能,则isUSBhost为TRUE,否则为FALSE。这段代码可以放在应用程序启动时(即activity),结果可以用来指导后续流程。
https://stackoverflow.com/questions/23961498
复制相似问题