今天小黑人要與大家分享的內容是"網路連線狀態",因為如果在開發APP時需要接觸到網路連線的話,就必須先提前判斷手機是否已連線至網路,如果手機在未連線的狀態下處裡連線的事情,當然會有讀取不到資料或開不起網頁甚至會發生讓程式錯誤關閉的現象產生,所以在進行網路溝通時前方加上一段檢查網路狀態的判斷式是最保險的,那要怎麼檢查網路連線的狀態呢?小黑人簡單歸類來告訴大家~
|
|
1.首先要在AndroidManifest.xml加入檢查網路狀態的權限 : |
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
|
2.接下來只要在程式端(.java)做判斷連線狀態就可以囉 : |
ConnectivityManager mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
//如果未連線的話,mNetworkInfo會等於null
if(mNetworkInfo != null)
{
//網路是否已連線(true or false)
mNetworkInfo.isConnected();
//網路連線方式名稱(WIFI or mobile)
mNetworkInfo.getTypeName();
//網路連線狀態
mNetworkInfo.getState();
//網路是否可使用
mNetworkInfo.isAvailable();
//網路是否已連接or連線中
mNetworkInfo.isConnectedOrConnecting();
//網路是否故障有問題
mNetworkInfo.isFailover();
//網路是否在漫遊模式
mNetworkInfo.isRoaming();
} |
|
以上簡單的判斷就可以檢查網路目前的連線狀況囉,大家可以試試看唷 ^^ |
|
如有任何問題都可以和小黑人一起交流討論喔~謝謝大家~! XDD |
|
你好,小黑人大大的註解很清楚,可以學到很多東西
回覆刪除不知道能不能寫篇android socket與pc java server資料傳輸的教學呢><
您好,感謝您對小黑人的支持,
刪除您的建議文章小黑人會安排在日後的分享教學文章內,
再請您多多推薦與交流。
感謝您的發言!!! ^^
請問一下
刪除這個可以改成先判斷連線狀態後顯示現在連線狀態嗎?
您好,根據您的提問小黑人與您解釋,
刪除答案是可以的,mNetworkInfo.isConnected()這方法就是判斷連線狀態,
只要加入到if進行判斷就可以得知目前網路狀態,
作法如下:
if(mNetworkInfo.isConnected())
{
//網路已連線
}
else
{
//網路尚未連線
}
感謝您的提問!
作者已經移除這則留言。
回覆刪除請問一下
回覆刪除我如何判斷他是3g,4g還是wifi
您好,根據您的提問小黑人與您解釋,
刪除此方法可以分辨出連線來源是"WIFI"or"行動數據"(3g 4g),
藉由mNetworkInfo.getTypeName()可以判斷出這兩種,
至於3G或4G皆是屬於行動數據類型,如果要再進一步分辨的話,
可能需要再去讀取sim卡的電信資訊。
感謝您的留言!
你好,請問一下,
回覆刪除若有的手機可在沒有連接到網路的狀況下 就會黑屏 或甚至閃退,
可能是什麼原因呢?
黑人大,請問要怎麼一直去檢查有無網路連線
回覆刪除該如何去尋找資料或是提供一點資訊
謝謝您
手機型號被盜用還有Google被盜用了
回覆刪除