Android開發過程中網絡權限問題


為什么寫這篇博客,就是為了記錄我在寫Tensorflow serving java雲端識別客戶端過程中遇到的大坑。怎么說呢,就是一套完整的Java客戶端寫好之后,在Android上編譯,你在Logcat里面查看細節的時候,因為Android開發編譯和Eclipse編譯不同。Eclipse等其它IDE只需要代碼寫好,直接編譯就能看出結果,但是Android需要編譯,安裝apk文件,從日志中看問題,特別遇到我這個開發設備,那是一個坑啊,只要代碼沒有運行順利,他就會直接閃退,在我通信中返回的那個函數語句就是過不了,日志也沒有明確提示,畢竟我的代碼就是對的。。

哈哈,我一開始返回調試了好久,正如我前篇博客寫的三個版本的客戶端,其中第二個就是為了驗證Android通信是否原理是對的,,一步步我解析出了每一步每一行語句的輸出結果,真找不出問題,后來看了一排你Android開發的一排文檔,顯示可能是設備網絡和軟件網絡權限的問題,才恍然大悟。

言歸正傳,就是說,某些開發設備的網絡以及各個軟件都有網絡設置權限,如果開發過程中,沒有聲明網絡權限問題,你的apk文件在你的設備上安裝之后就不可以調用你的設備中的網絡,當然啦對於需要遠端網絡識別來說,肯定不通啦,所以就有了我前面那個request語句過不了的問題。

解決如下:打開工程,找到配置文件AndroidManifest.xml文件,在結尾 </manifest>前面加上一行聲明語句如下:

<uses-permission android:name="android.permission.INTERNET"/>

再重新編譯安裝,就沒有問題了。這里我思考了一下,希望看到我這篇博客的小伙伴在以后Android開發網絡通信中,千萬不要忘記加網絡聲明,否則可能會坑你很久,哈哈哈
下面是一些其它權限配置文件,需要的自己瞅瞅,,嘻嘻

 
        

1、android.permission.ACCESS_CHECKIN_PROPERTIES

 
        

允許讀寫訪問”properties”表在 checkin數據庫中,改值可以修改上傳( Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded)

 

 
        

2、android.permission.ACCESS_COARSE_LOCATION

 
        

允許一個程序訪問CellID或WiFi熱點來獲取粗略的位置(Allows an application to access coarse (e.g., Cell-ID, WiFi) location)

 

 
        

3、android.permission.ACCESS_FINE_LOCATION

 
        

允許一個程序訪問精良位置(如GPS) (Allows an application to access fine (e.g., GPS) location)

 

 
        

4、android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

 
        

允許應用程序訪問額外的位置提供命令(Allows an application to access extra location provider commands)

 
        
 
        

5、android.permission.ACCESS_MOCK_LOCATION

 
        

允許程序創建模擬位置提供用於測試(Allows an application to create mock location providers for testing)

 

 
        

6、android.permission.ACCESS_NETWORK_STATE

 
        

允許程序訪問有關GSM網絡信息(Allows applications to access information about networks)

 

 
        

7、android.permission.ACCESS_SURFACE_FLINGER

 
        

允許程序使用SurfaceFlinger底層特性 (Allows an application to use SurfaceFlinger’s low level features)

 

 
        

8、android.permission.ACCESS_WIFI_STATE

 
        

允許程序訪問Wi-Fi網絡狀態信息(Allows applications to access information about Wi-Fi networks)

 

 
        

9、android.permission.ADD_SYSTEM_SERVICE

 
        

允許程序發布系統級服務(Allows an application to publish system-level services).

 

 
        

10、android.permission.BATTERY_STATS

 
        

允許程序更新手機電池統計信息(Allows an application to update the collected battery statistics)

 

 
        

11、android.permission.BLUETOOTH

 
        

允許程序連接到已配對的藍牙設備(Allows applications to connect to paired bluetooth devices)



 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM