android 查找所有的串口,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;
@Override
protected 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 {
@Override
public 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 查找所有的串口,Android 串口通讯 获取卡号相关推荐
- Android 串口通讯 获取卡号
首先你的andoridstudio 需要配置ndk 环境 然后在去下载谷歌的的demo 下载地址 把这些直接复制到代码中 一般 jni C语言调用java 是指定包名调用的 所有android_se ...
- android查找本地图片数据库,Android 图片数据库那些事儿
1 .图片数据库都有哪些字段 [_data] /storage/emulated/0/baidu/searchbox/downloads/u_869433472_2689249404&fm_5 ...
- android获取卡号号码,Android银行卡扫描获取银行卡号
ard.io开源的银行卡扫描的三方库真的是很好用啊. 首先需要在你的module的gradle的依赖文件中添加依赖 compile 'io.card:android-sdk:5.5.1' 2 清单文件 ...
- Android 银行卡扫描识别获取卡号
用card.io 实现的银行卡扫描,免费 Card.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.i ...
- libusb 串口 android,libusb开发通讯问题
libusb开发通讯问题 本篇文章继续记录使用libusb通讯是遇到的问题 问题描述: 使用libusb与一台新的虚拟串口下位机通讯,扫描.打开.关闭都是正常的,就是无法收发数据,也没有报错,这是为什 ...
- Android模拟器虚拟串口实现串口通信
第一步: 根据博文<Android SDK安装及配置模拟器>安装JDK,Android SDK,设置环境变量. 第二步: 运行android-sdk下的SDK Manager.exe 安装 ...
- Android 操作串口 (android serial port api)
Android 操作串口 (android serial port api)
- s5p4418 android 驱动 hal 应用之led 串口 rs485 can总线应用(app 有源码)
本篇是继上篇的jni层后的app应用层. 由于app相对比较大,说起来也比较麻烦,这里就用一个串口来说明即可,实际上也就串口最具代表性,这个明白了,其他都不是问题. 串口涉及的java文件如下图红色圈 ...
- android开发板只有网口和串口如何使用android studio进行调试
android开发板只有网口和串口如何使用android studio进行调试 1.要先准备一条串口线,或者串口转usb的线,用于在pc端与开发板端建立连接. 2.要下载一个在pc端运行的超级终端,我 ...
最新文章
- lua学习笔记之闭包
- 1、MySQL为什么需要事务?
- finite state machine drawer online
- cpp加密php,常用的数据加密规则算法(php包含MD5和RSA)
- EClipse开发NDK流程
- Java多线程之Callable、Future和FutureTask
- 八杯水微博程序演示及下载
- 石头机器人红灯快闪_机器人集体“快闪”活动爆红网络 “我是AI”与您相约智能新时代...
- 使用Python将字符串转换为格式化的日期时间字符串
- Python3.x:pyodbc调用sybase的存储过程
- oracle bpm 教学视频,oracle BPM直接更新流程
- 网络编程(三)sqlist轻量级数据库的简单应用
- DV EV OV证书
- 2021年南京大学软件工程专硕考研初试410分(数学满分)总成绩第二上岸经验贴
- 错误	C2248	“Bus::operator ()”: 无法访问 private 成员(在“Bus”类中声明)
- 我给新加坡华人送外卖,一趟5000块
- centos6.5安装openoffice和swftools 错误信息
- #Python中创建一个字符串映射表
- 恶意软件免杀与技术(2022.10.08)
- redux与flux