登录 注册
当前位置:主页 > 资源下载 > 5 > 编程 Android 8.1 的串口通讯

编程 Android 8.1 的串口通讯

  • 更新:2024-09-03 18:20:38
  • 大小:20.04MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Android - 移动开发
  • 格式:ZIP

资源介绍

8.0以后,串口访问越来越麻烦,各种权限受限,把这两天遇到的麻烦Mark一下,希望同行看见后有所借鉴。 关于权限,我总结了下,主要有三点: 1、app 要有系统权限 在AndroidManifest.xml里加上 android:process=“system” android:sharedUserId=“android.uid.system” 不过这样的话,app就要放到源码里编译了。 2、 /dev/ttyS4要有读写权限 (你的串口不一定是这个ttyS4) ls -l /dev/ttyS4 如果没有读写权限,记得在init.rc里面添加 chmod 777 /dev/ttyS4 3、做完上面两步,本来想这会该有访问权限了吧,结果还是拒绝访问,一脸的懵逼。 后来想起来有可能是selinux搞得鬼,然后将selinux设为 permissive模式以后,终于可以通讯了。 不过每次adb shell输入setenforce 0 还是不爽, 我们在源码里访问权限加上。 可以参考 https://blog.****.net/huangyabin001/article/details/79290382 我这里具体的更改为 Rk3288/system/sepolicy/private/system_app.te 加上这么两句话 allow system_app serial_device:chr_file { open read write ioctl getattr }; allow system_app proc_stat:file { getattr }; 这样那些自己驱动里创建的设备节点也就可以访问了。 然后mmm sepolicy。 串口的操作用的是android-serialport-api ,只不过我的代码里将ndk-build改成了cmake,如果不会操作,一搜一大把。 开发环境 androidStudio ndk cmake