Android-SerialPort-API-master源码 串口调试 权限分析 定制

我把界面美化了一下

在这里插入图片描述

Android-SerialPort-API-master源码

1.加了发送按钮
2.加上固定/dev/ttyGS1和GS9

在这里插入图片描述
串口权限问题已经查清楚了。app与PosServer都是使用google的SerialPort方案。我做的app 都多使用一个函数available(),这个函数是非常有用的。在上位机发送单条指令不连续时,可以先用available()判断是否有接收数据,有就延时几毫秒,指令指令时能防止被截断,这在读写IMEI时非常常见,modem发送不是我能控制的。
在我们自己开发上位机时,一般是先拼好数据再一起发送,单条指令不连续是不存在的,也可以不用这个函数。
另外,之前采用adb方式通信,连接慢、不稳定、中断、offline等,串口还是更好些。没有其它的USB方式。

建议:
1.后续改AP 串口权限时,一定要开齐全,开发应用才能比较灵活。allow system_app serial_device:chr_file { read write getattr open }; 当前可能所有型号串口都少了getattr权限。还有linux权限。
2.后期app是能兼容一下的,临时去掉函数available()。

adb kill-serveradb rootadb shell setenforce 0adb shell chmod -R 777 /dev/ttyUSB0
adb shell chmod -R 777 /dev/ttyUSB1
adb shell chmod -R 777 /dev/ttyUSB2
adb shell chmod -R 777 /dev/ttyUSB3
adb shell chmod -R 777 /dev/ttyUSB5adb shell chmod -R 777 /dev/ttyCOM0
adb shell chmod -R 777 /dev/ttyCOM1
adb shell chmod -R 777 /dev/ttyFIQ0
adb shell chmod -R 777 /dev/ttyGS0
adb shell chmod -R 777 /dev/ttyGS1
adb shell chmod -R 777 /dev/ttyS1
adb shell chmod -R 777 /dev/ttyS9
adb shell chmod -R 777 /dev/ttyS6adb shell am start -n  com.azhon.spplus/.MainActivity::F310A_WriteIMEI -DWadb.exe forward tcp:5902 tcp:5902pause

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/98167.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/98167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KVM 入门使用手册

KVM 入门使用手册 1. 概述 2. 安装 在 Ubuntu/Debian 上安装 在 RHEL/CentOS/Fedora 上安装 3. 网络配置 查看默认网络 使用桥接网络 (推荐用于服务器) 4. 创建虚拟机 方法一:使用图形界面 (virt-manager) 方法二:使用命令行 (virt-install) 5. 管理虚拟机 使用 `virsh` 命令…

Devise Ruby身份验证解决方案全攻略

文章目录 前言Devise到底是什么?为什么选择Devise?环境准备Devise安装指南第一步:添加Devise到你的Gemfile第二步:初始化Devise第三步:生成用户模型第四步:运行数据库迁移 Devise核心模块详解Database Auth…

68-python操作SQLite

1. 了解SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用…

在Qt项目中使用QtConcurrent::run,实现异步等待和同步调用

在使用Qt进行开发时,经常需要使用异步方法,不同于C#的async/await,Qt中提供了QtConcurrent::run接口方法可供调用,习惯了C#的await,便想着能不能封装几个类似的函数在项目中使用,探索了下,有如下…

视频分类 pytorchvideo

目录 1. 速度 vs 精度分析 mvit: r2plus1d_r50 推理代码: x3d_xs推理代码: R(21)D X3D(轻量级,速度快) I3D(经典 3D CNN) 替换分类层(适配你的任务) https://gith…

OpenTiny NEXT 内核新生:生成式UI × MCP,重塑前端交互新范式!

近期,我们推出 OpenTiny NEXT —— OpenTiny的下一代企业级前端智能开发解决方案。这不仅是一次技术升级,更是一场用户交互范式的变革:从传统的人机交互升级成为人机交互范式和智能体交互范式的融合。我们坚信,每一个企业应用都值…

深度神经网络1——梯度问题+标签数不够问题

要解决一个复杂问题,可能要训练更深的神经网络,可能会10层及以上,每层包含数百个神经元,成千上万个连接。这样大的神经网络在训练的时候可能会遇到以下问题:这样在进行反向传播的时候,随着层数越来越低会遇…

(笔记)内存文件映射mmap

内存文件映射是一种将文件内容映射到进程的虚拟地址空间的技术,使得文件可以被视为内存的一部分,从而允许程序直接对这部分内存进行读写操作,而无需传统的文件 I/O 调用。这种方法不仅简化了文件操作,还提高了处理效率。 在Linux…

Golang中的NaN(Not a Number)

Golang中的NaN(Not a Number) 在Go语言中,NaN是浮点数(特别是float32和float64)中的一个特殊值,表示未定义或不可表示的数值。 go中,除数为0时并不会返回error或者nil,而是返回无穷大…

微软图引擎GraphEngine深度解析:分布式内存计算的技术革命

❝ "在大数据的汪洋中,图引擎就像是一艘能够高速穿越复杂关系网络的超级快船" 引言:当内存遇上图计算的火花 在这个数据爆炸的时代,传统的关系型数据库已经难以应对复杂关系数据的查询挑战。当Facebook的社交网络拥有数十亿用户关…

catkin工程和CMakelist.txt的基本使用

catkin工程和CMakelist.txt的基本使用1.catkin工程和CMakelist.txt的基本使用1. 顶部基本信息2. 编译选项 / C 标准3. 依赖查找(catkin 包)4. 第三方库查找(非 catkin)5. 导出包信息(catkin_package)6. 头文…

uniapp打包前端项目

打包前的准备工作确保项目开发已完成,并且已安装最新版本的HBuilderX。检查项目中所有依赖是否已正确安装,配置文件如manifest.json已根据H5需求进行适配。在HBuilderX中打包在 HBuilderX 中,点击顶部菜单栏的 “发行” -> “网站-H5手机版…

Dify + Bright Data MCP:从实时影音数据到可落地的智能体生产线

一、引言:AI 应用与实时影音数据的融合价值 内容生态近年的“视频化、实时化、社交化”浪潮,将数据获取链路推到了更靠前的位置。真正驱动业务的,不是某一帧漂亮的模型输出,而是“数据—理解—动作”的持续闭环。无论是品牌内容策…

【Linux】make/Makefile工具篇

目录一、自动化构建二、make/Makefile2.1 见识一个简单的make/Makefile2.2 Makefile的基本语法2.3 Makefile的语法细节个人主页<—请点击 Linux专栏<—请点击 一、自动化构建 自动化构建是指通过构建工具&#xff08;如make&#xff09;解析构建脚本&#xff08;如Make…

如何在企业微信上以 HTTPS 方式访问内网 OA/ERP 等系统?

企业微信可以将 ZeroNews 平台上添加的内网应用集成到企业微信的工作台。这样&#xff0c;用户即使在外部网络环境中&#xff0c;也可以通过企业微信访问内网的 OA、ERP 等应用。以下是企业在 Linux 服务器上部署 OA 系统&#xff0c;并通过 ZeroNews 通过互联网访问 OA 系统的…

Windows 11 安装使用 nvm,Node.js、npm多版本管理、切换

Windows 11 安装使用 nvm&#xff0c;Node.js、npm多版本管理、切换 文章目录Windows 11 安装使用 nvm&#xff0c;Node.js、npm多版本管理、切换1. nvm 简介2. 安装、配置 nvm2.1. 卸载现有 Node.js&#xff08;非常重要&#xff01;&#xff09;2.2. 下载 nvm-windows 安装包…

在LazyVim中配置Rust开发环境

要在LazyVim中配置Rust开发环境&#xff0c;包括代码补全、格式化、调试等功能&#xff0c;可以按照以下步骤进行配置&#xff1a; 1. 确保基础环境 首先确保你已经安装了&#xff1a; Rust工具链 (rustup, rustc, cargo)LazyVim已正确安装 # 安装Rust工具链 curl --proto http…

LeetCode热题100--114. 二叉树展开为链表--中等

1. 题目 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 …

REST API 设计最佳实践指南 - 如何用 JavaScript、Node.js 和 Express.js 构建 REST API

过去几年里&#xff0c;我创建并使用过很多 API。在此过程中&#xff0c;我遇到过各种好的和坏的实践&#xff0c;也在开发和调用 API 时碰到过不少棘手的问题&#xff0c;但也有很多顺利的时刻。 网上有很多介绍最佳实践的文章&#xff0c;但在我看来&#xff0c;其中不少都缺…

MyCat

文章目录18.1 MySQL 读写分离概述18.1.1 工作原理18.1.2 为什么要读写分离18.1.3 实现方式18.2 什么是 MyCat18.3 MyCat 安装与配置1. 下载与解压2. 创建用户并修改权限3. 目录说明4. Java 环境要求18.4 MyCat 启动与配置1. 配置环境变量2. 配置 hosts&#xff08;多节点集群&a…