手机版

android模拟器使用PC串口调试程序

发布时间:2024-11-12   来源:未知    
字号:

如何让Android模拟器使用PC机的串口,和在Java中打开串口

android模拟器使用PC串口调试程序

1.模拟器可以使用PC的串口

启动模拟器并加载PC串口 命令如下:

运行 emulator @模拟器名称 -qemu -serial COM1

2.查看串口是否被加载

启动后使用 adb shell 命令打开命令行

cd dev 查看会发现ttyS0 ttyS1 ttyS2,其他ttyS2 就是我们加载上来的串口COM1

3.修改权限

chmod 777 ttyS2

现在我们可以开发串口程序了。

4.串口程序实例

下载libserial_port.so ,放入libs/armeabi 目录,可以自己创建此目录

libserial_port.so 下载地址:

http:///p/android-serialport-api/

import java.io.File;

import java.io.FileDescriptor;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import android.util.Log;

public class SerialPort {

如何让Android模拟器使用PC机的串口,和在Java中打开串口

private static final String TAG = "SerialPort";

private FileDescriptor mFd;

private FileInputStream mFileInputStream;

private FileOutputStream mFileOutputStream;

public SerialPort(File device, int baudrate) throws SecurityException, IOException { if (!device.canRead() || !device.canWrite()) {

try {

Process su;

su = Runtime.getRuntime().exec("/system/bin/su");

String cmd = "chmod 666 " + device.getAbsolutePath() + "\n"

+ "exit\n";

su.getOutputStream().write(cmd.getBytes());

if ((su.waitFor() != 0) || !device.canRead()

|| !device.canWrite()) {

throw new SecurityException();

}

} catch (Exception e) {

e.printStackTrace();

throw new SecurityException();

}

}

mFd = open(device.getAbsolutePath(), baudrate);

if (mFd == null) {

Log.e(TAG, "native open returns null");

throw new IOException();

}

mFileInputStream = new FileInputStream(mFd);

mFileOutputStream = new FileOutputStream(mFd);

}

public InputStream getInputStream() {

return mFileInputStream;

}

public OutputStream getOutputStream() {

return mFileOutputStream;

}

如何让Android模拟器使用PC机的串口,和在Java中打开串口

//JNI

private native static FileDescriptor open(String path, int baudrate); public native void close();

static {

System.loadLibrary("serial_port");

}

}

####################################

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

/**

* LINUX下串口打印接口

* @author douk

*

*/

public class PrintClass {

//输入流

private static InputStream in;

//输出流

private static OutputStream out;

private static final String PORT = "/dev/ttyS2";//串口

private SerialPort serialPort;

/**

* 连接串口

*/

private void Connect()

{

try {

serialPort = new SerialPort(new File(PORT), 38400);

in = serialPort.getInputStream();

如何让Android模拟器使用PC机的串口,和在Java中打开串口

out = serialPort.getOutputStream();

} catch (SecurityException e) { e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 关闭串口

* @throws IOException

*/

public void CloseSerialPort() {

try {

out.close();

in.close();

serialPort.close();

} catch (IOException e) {

e.printStackTrace();

}

}

android模拟器使用PC串口调试程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)