Android 串口开发,发送串口命令,读卡,反扫码,USB通讯,实现demo


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进阶视频+面试资料部分截图](https://img-blog.csdnimg.cn/img_convert/894f06ad039fe5d7ba1024fb8cc41732.webp?x-oss-process=image/format,png)






    }




## **最后**

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值