我正在尝试使用FTDI提供的Java类库将FTDI FT2232H连接到Android应用程序,该类库不需要root访问权限。
有没有一种方法可以通过这个包使用VCP,而不是老式的本地驱动程序路线?或者,如果没有,有没有一种方法可以通过它来模拟VCP接口(或者有没有可能推出我自己的解决方案?(我发现官方文档有点缺乏,因为他们鼓励使用Java库而不是本地库,但没有解释它是否提供全功能奇偶性。
是的,您可以通过D2XX驱动程序使用VCP。查看Java D2xx for Android API用户手册(另请参阅C/C++软件应用程序开发D2xx程序员指南和FTD2XX程序员手册版本2.01文档(,官方Android D2XX示例源代码,特别是在FT2232HTestFragment.java
类中:
public void SendMessage(View view) { // Do something in response to button FT_Device ftDev; if( uart_configured_0 == false ) { Toast.makeText(DeviceFT2232HTestContext, "UART Port 0 not configured yet...", Toast.LENGTH_SHORT).show(); return; } ftDev = ft_device_0; if(ftDev.isOpen() == false) { Log.e(">>@@","SendMessage: ftDev not open!!!!!! index: 0"); } else { Log.e(">>@@","SendMessage: ftDev open, index: 0"); /* Log.e(">>@@","port 0 isn:" + ftDev.deviceInfoNode.iSerialNumber + " bcd:" + ftDev.deviceInfoNode.bcdDevice + " id:" + ftDev.deviceInfoNode.id + " loc:" + ftDev.deviceInfoNode.location + " sn:" + ftDev.deviceInfoNode.serialNumber); */ } ftDev.setLatencyTimer((byte) 16); // ftDev.Purge(true, true); String writeData = writeText_0.getText().toString(); byte[] OutData = writeData.getBytes(); int iLen = ftDev.write(OutData, writeData.length()); Log.e(">>@@", "Port 0 write Len:" + iLen + " s:" + writeData); Toast.makeText(DeviceFT2232HTestContext, "Port 0 write Len:" + iLen + " s:" + writeData, Toast.LENGTH_SHORT).show(); }
和类似的例子(由铃木惠介(。