android应用访问串口失败,android 开发串口中遇到的权限问题

public SerialPort(File device, int baudrate, int flags) throws SecurityException, IOException {

//检查访问权限,如果没有读写权限,进行文件操作,修改文件访问权限

if (!device.canRead() || !device.canWrite()) {

try {

//通过挂载到linux的方式,修改文件的操作权限

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

String cmd = "chmod 777 " + device.getAbsolutePath() + "\n" + "exit\n";

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

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

//device.canRead() device.canWrite() 返回都flase 估计就是串口权限问题了 我是找开发商 开权限的

throw new SecurityException();

}

} catch (Exception e) {

e.printStackTrace();

throw new SecurityException();

}

}

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

if (mFd == null) {

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

throw new IOException();

}

mFileInputStream = new FileInputStream(mFd);

mFileOutputStream = new FileOutputStream(mFd);

}

执行 /system/xbin/su这个进程,是获取root权限。这个返回的process,是一个root过的shell,可以在process的输入流中,以root权限执行其他命令了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值