日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Android 串口通讯 获取卡号

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 串口通讯 获取卡号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先你的andoridstudio 需要配置ndk 環境?

然后在去下載谷歌的的demo?

下載地址

把這些直接復制到代碼中

一般??jni?C語言調用java?是指定包名調用的 所有android_serialport_api的包名不要改變?

直接復制過去就行

對了 jniLibs 需要指向下,如果不想指向可以把里面的內容復制到 libs里面

我寫的指向

    sourceSets {main {jni.srcDirs = []jniLibs.srcDirs = ['src/main/jniLibs']}}

準備好之后就可以開始寫了,,為了更好的了解串口我拍了一張我們機器上的圖片如下

?這個名字不要弄錯了

完整的demo如下

package com.hly.main;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android_serialport_api.SerialPort;
public class Good extends AppCompatActivity {protected SerialPort mSerialPort;protected InputStream mInputStream;protected OutputStream mOutputStream;private ReadThread mReadThread;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.text_layout);try {//臨時卡mSerialPort = new SerialPort(new File("/dev/ttyS4"), 19200, 0);mInputStream = mSerialPort.getInputStream();mOutputStream = mSerialPort.getOutputStream();mReadThread = new ReadThread();Toast.makeText(Good.this, "串口已經打開", Toast.LENGTH_SHORT).show();mReadThread.start();} catch (SecurityException e) {e.printStackTrace();} catch (IOException e) {Log.v("test", "啟動失敗");e.printStackTrace();}}private class MReadThread extends Thread {@Overridepublic void run() {super.run();while (!isInterrupted()) {try {if (mInputStream == null)return;byte[] buffer = new byte[64];int mcount;if (mInputStream.available() <= 0) {continue;} else {Thread.sleep(300);}mcount = mInputStream.read(buffer);if (mcount > 8) {//根據自己的情況添加onDataReceived(buffer, mcount, 1);//根據自己需要的情況添加內容}} catch (IOException e) {e.printStackTrace();return;} catch (InterruptedException e) {e.printStackTrace();return;}}}}protected void onDataReceived(final byte[] buffer, final int size) {runOnUiThread(new Runnable() {public void run() {String msg = new String(buffer);Toast.makeText(Good.this, msg, Toast.LENGTH_SHORT).show();//這個是需要截取的卡號
//                    byte[] bytes = buffer;
//                    String mealCardData = HexUtils.bytes2Hex(bytes);
//                    //截取餐卡卡號,臨時餐卡為AA55打頭
//                    if (mealCardData != null && mealCardData.length() >= 14) {
//                        String cardNo = mealCardData.substring(10, 12);
//                        cardNo = cardNo + mealCardData.substring(8, 10);
//                        cardNo = cardNo + mealCardData.substring(6, 8);
//                        cardNo = cardNo + mealCardData.substring(4, 6);
//                        Toast.makeText(Good.this, cardNo, Toast.LENGTH_SHORT).show();}});}
}

需要注意的地方就是 地址與波特率 不要弄錯了

這樣就拿到卡號了,如果項目需要截取卡號之類的,自己在處理就行了 。。。

如果有不懂的可以提問,謝謝。。。。

?

總結

以上是生活随笔為你收集整理的Android 串口通讯 获取卡号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。