背景:
最近由于项目需要将先前视美泰A20的程序升级到A40上使用,原则上不应该有问题的,但发现切换过来的程序操作串口数据时只能读不能写。
原因分析:
对于可读不可写,说明波特率、校验位等参数设置是正确的;可能出现在写入时的权限或串口程序解析问题。通过在串口用示波器测试波形发现并未写入,所以怀疑串口程序异常是不可能发生了,只能出现在节点权限上面。对比A20、A40节点权限发现:
对比不难发现,A20是root用户组,而A40是system用户组,对于熟悉Android的朋友来说不难解决此问题了。
解决办法:
1. 在manifest中添加android:sharedUserId="android.uid.system"属性;
2. 将程序使用A40的系统签名,签名后再安装到A40主板上。
以上两步操作完成后你会发现程序运行正常,问题得以解决。
作者:kerry1789