安卓專案,訊號檢測總結
重點內容重點內容這個app的需求就是:能夠實時檢測某個位置的各運營商的訊號強度。
主要是針對移動,聯通,電信等基站等訊號進行監控,實時獲取4G,3G,2G訊號,
工程巡檢人員拿著這款app到某個位置巡檢後,檢測當前位置的訊號強度,並截圖記錄下來,以便後面檢視歷史巡檢記錄。
從表面上看這app功能看似簡單,但在實際開發中還是遇到許多難點的。
客戶給我跟提供了一個樣版APP(JSR),還有它反編譯後得到的程式碼,要求我們實現上面有的功能(獲取訊號強度,手機截圖),還能增加一些新的功能就最好了。
首先了解什麼是AT指令:AT 即Attention,是從終端裝置(Terminal Equipment,TE)
或資料終端裝置(Data Terminal Equipment,DTE)向終端介面卡(Terminal Adapter,TA)或資料電路終端裝置
(Data Circuit Terminal Equipment,DCE)傳送的一種調變解調器命令語言。
通過AT指令向硬體層獲取資訊,需要最高階的ROOT許可權(要系統級的,不是想魅族那樣自帶的ROOT。)
專案所遇到的困難:
客戶提供的樣板APP只能在他的工程機(這個手機沒有ROOT)上執行,在其他手機上執行全部都失敗。
然後有一個同學在網上找到了一個開源的API,這個API和我們專案的需求正好相同,但是這個API需要ROOT許可權,
根據這個API我們根據API原始碼瞭解到,傳送AT指令時通過jni得到一個輸入流和輸出流,同過操作輸出流指定你要操作硬體驅動,但是這個API只是能和硬體通訊,並不是傳送AT指令。
然後我們繼續研究其他的,發現很多ROOT過的手機都沒有辦法傳送AT指令,我們的老師只能去和客戶溝通了,得到的結果是,那款軟體是專門為那一款手機定製的,出廠的時候就是內建的應用。
我們也瞭解到了要生產商家開放AT操作許可權才能正常除錯的,否則即使能除錯也是一些很簡單的AT指令。
最後我們只能放棄這個專案了,當然我們也把傳送AT指令外的其他功能實現了,下面就是我做的,介面比較醜^_^。