用linux api作,我现在项目就是qt for android serialport
bool ComMgr::open()
{
#ifdef Q_OS_ANDROID
if(m_fd != -1)
::close(m_fd);
char* com = g_sysVar->m_strCom.toLatin1().data();
m_fd = ::open((char*)com, O_RDWR|O_NONBLOCK);
if (m_fd == -1)
{
AddInfo("COM: open is failed<1>");
return false;
}
termios serialAttr;
memset(&serialAttr, 0, sizeof serialAttr);
serialAttr.c_iflag = IGNPAR;
serialAttr.c_cflag= B115200| HUPCL| CS8|CREAD|CLOCAL;
serialAttr.c_cc[VMIN] = 1;
if (tcsetattr(m_fd, TCSANOW, &serialAttr) != 0) {
AddInfo("COM: open is failed<2>");
return false;
}
m_notifier = new QSocketNotifier(m_fd, QSocketNotifier::Read, this);
QObject::connect (m_notifier, SIGNAL(activated(int)), this, SLOT(slt_notifyNewData()));
#endif
return true;
}