1.新建一个安卓项目。
2.引入jar包:CH34xUARTDriver.jar(下载后直接拖入项目的libs下就可以了)
3.右键点击jar包,导入项目中(到时会弹出一个框,直接点ok就可以了)
4.检查libs文件是否与图片一致
5.可以开始写入你的代码了。在MainActivity中就可以调用串口代码了。
//初始化,并判断手机是否支持
MyApp.driver = new CH34xUARTDriver(
(UsbManager) getSystemService(Context.USB_SERVICE), this,
ACTION_USB_PERMISSION);
//initUI();
if (!MyApp.driver.UsbFeatureSupported())// 判断系统是否支持USB HOST
{
Dialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("提示")
.setMessage("您的手机不支持USB HOST,请更换其他手机再试!")
.setPositiveButton("确认",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,
int arg1) {
System.exit(0);
}
}).create();
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
6.打开连接,并初始化串口。
public void myopen(View view){
baudRate = 115200;
dataBit = 8;
stopBit = 1;
parity = 0;
flowControl = 0;
if (!isOpen) {
retval = MyApp.driver.ResumeUsbList();
if (retval == -1)// ResumeUsbList方法用于枚举CH34X设备以及打开相关设备
{
Toast.makeText(MainActivity.this, "打开设备失败!",
Toast.LENGTH_SHORT).show();
MyApp.driver.CloseDevice();
} else if (retval == 0){
if (!MyApp.driver.UartInit()) {//对串口设备进行初始化操作
Toast.makeText(MainActivity.this, "设备初始化失败!",
Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "打开" +
"设备失败!",
Toast.LENGTH_SHORT).show();
return;
}
Toast.makeText(MainActivity.this, "打开设备成功!",
Toast.LENGTH_SHORT).show();
MyApp.driver.SetConfig(baudRate, dataBit, stopBit, parity,flowControl);
isOpen = true;
//openButton.setText("Close");
//configButton.setEnabled(true);
//writeButton.setEnabled(true);
//new MainActivity.readThread().start();//开启读线程读取串口接收的数据
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("未授权限");
builder.setMessage("确认退出吗?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
// MainFragmentActivity.this.finish();
System.exit(0);
}
});
builder.setNegativeButton("返回", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.show();
}
} else {
//openButton.setText("Open");
//configButton.setEnabled(false);
//writeButton.setEnabled(false);
isOpen = false;
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MyApp.driver.CloseDevice();
totalrecv = 0;
}
}
这样,你就可以开始与串口通信了。接收数据的方法就不详细写了,有很多巨人已经帮我们实现了。网上也有官方的案例,请大家自行前往啦。
(安卓开发,从入门到放弃)
来源:oschina
链接:https://my.oschina.net/u/4297638/blog/3231010