private String[] mDevices;
public void getcuankou(){
SerialPortFinder serialPortFinder = new SerialPortFinder();
mDevices = serialPortFinder.getAllDevicesPath();
for (int c = 0;c<mDevices.length;c++){
Log.i("lgq","...... "+mDevices[c]);
}
}
2、连接串口,以及关闭串口
=============
/**
* 打开串口
*
* @param devicePath
* @param baudrateString
* @return
*/
public SerialPort open(String devicePath, String baudrateString) {
if (mSerialPort != null) {
close();
}
try {
File device = new File(devicePath);
int baurate = Integer.parseInt(baudrateString);
mSerialPort = new SerialPort(device, baurate, 0);
mReadThread = new SerialReadThread(mSerialPort.getInputStream());
mReadThread.start();
mOutputStream = mSerialPort.getOutputStream();
mWriteThread = new HandlerThread("write-thread");
mWriteThread.start();
mSendScheduler = AndroidSchedulers.from(mWriteThread.getLooper());
return mSerialPort;
} catch (Throwable tr) {
LogPlus.e(TAG, "打开串口失败", tr);
close();
return null;
}
}
/**
* 关闭串口
*/
public void close() {
if (mReadThread != null) {
mReadThread.close();
}
if (mOutputStream != null) {
try {
mOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (mWriteThread != null) {
mWriteThread.quit();
}
if (mSerialPort != null) {
mSerialPort.close();
mSerialPort = null;
}
}
Android接收读卡器以及扫码器返回数据实现方法
工具类
public class CardSwipingHelper {
private static final String TAG = CardSwipingHelper.class.getSimpleName();
private static class SingletonHolder {
private static final CardSwipingHelper INSTANCE = new CardSwipingHelper();
}
private CardSwipingHelper() {
}
public static final CardSwipingHelper getInstance() {
return SingletonHolder.INSTANCE;
}
private StringBuffer stringBuffer=null ;
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
char pressedKey = (char) event.getUnicodeChar();
if(stringBuffer==null){
stringBuffer=new StringBuffer();
}
if (event.getUnicodeChar()==0){
return false;
}
stringBuffer.append(pressedKey);
}
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if (mCardSwipingCallBack != null) {
mCardSwipingCallBack.enterCardSwipingCont(replaceBlank(stringBuffer.toString()));
}
stringBuffer = null;
return true;
}
return false;
}
private CardSwipingCallBack mCardSwipingCallBack;
public void setCardSwipingCallBack(CardSwipingCallBack cardSwipingCallBack) {
mCardSwipingCallBack = cardSwipingCallBack;
}
## **最后**
针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

}
## **最后**
针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
[外链图片转存中...(img-kwGM2ICT-1719653090172)]