android串口通信

android串口通信

在工業控制環境下,通常需要工控機與設備進行串口連接進行通信,以增加系統的穩定性,這個時候就需要app具有串口通信的功能:

  1. android系統沒有提供直接訪問串口的方法,需要使用jni技術,通過c或c++訪問串口
  2. github上有demo實現了串口通信,名稱爲android-serialport-api,可以在網站裏搜一下,可以下載下來看看。有的demo有點老,他的.so文件放在5.0之後的系統中會出現問題,可以老的新的demo一起下下來比對看看,基本差不多,如果新文件結構不熟悉,有些可以用新demo的文件替換掉老demo的文件。
  3. Android系統中串口設備都在dev/文件夾下,要想讀寫這個文件夾需要root權限,所以一般設備都需要先root,可以使用360一鍵root或kingroot等工具
  4. 在android studio中新建項目,在main目錄中新建jin和jinLibs目錄,在java目錄下新建android.serialport包,把下載的demo中的對應的文件複製到項目對應的文件夾下,文件結構如下這裏寫圖片描述Android.mk和Application.mk好像可以不用,沒試過
  5. android.serialport包的命名要按規定,不是隨便命名的,兩個demo中的命名可能不一樣,這個是根據SerialPort.c中的方法命名的,具體不太清楚,跟demo學。
  6. 在build.gradle加入代碼:
sourceSets {
            main {
                jni.srcDirs = []
            }
        }   

如圖這裏寫圖片描述
7. android5.0後即便獲取到了root權限,也不能讀寫dev/下的文件,原因是5.0後android使用了SELinux系統,加強了安全策略,可以通過命令行修改這個策略,詳細可見SELinux狀態查看和設置 ,具體方法

  • 進入cmd命令行
  • >adb shell
  • >getenforce 查看策略
  • >setenforve 0 設置策略爲Permissive
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章