背景:
最近由於項目需要將先前視美泰A20的程序升級到A40上使用,原則上不應該有問題的,但發現切換過來的程序操作串口數據時只能讀不能寫。
原因分析:
對於可讀不可寫,說明波特率、校驗位等參數設置是正確的;可能出現在寫入時的權限或串口程序解析問題。通過在串口用示波器測試波形發現並未寫入,所以懷疑串口程序異常是不可能發生了,只能出現在節點權限上面。對比A20、A40節點權限發現:
對比不難發現,A20是root用戶組,而A40是system用戶組,對於熟悉Android的朋友來說不難解決此問題了。
解決辦法:
1. 在manifest中添加android:sharedUserId="android.uid.system"屬性;
2. 將程序使用A40的系統簽名,簽名後再安裝到A40主板上。
以上兩步操作完成後你會發現程序運行正常,問題得以解決。