我把界面美化了一下
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