生活随笔
收集整理的這篇文章主要介紹了
转:Android判断当前网络是否可用--示例代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Android平臺上開發基于網絡的應用,必然需要去判斷當前的網絡連接情況。下面的代碼,作為例子,詳細說明了對于當前網絡情況的判斷。
?
先看一個自己定義的應用類。
?
?
源碼copy to clipboard打印?
<STRONG>public?class?NetworkDetector?{ ??? ??????public?static?boolean?detect(Activity?act)?{ ???????? ?????????ConnectivityManager?manager?=?(ConnectivityManager)?act ????????????????.getApplicationContext().getSystemService( ???????????????????????Context.CONNECTIVITY_SERVICE); ???????? ?????????if?(manager?==?null)?{ ?????????????return?false; ?????????} ???????? ?????????NetworkInfo?networkinfo?=?manager.getActiveNetworkInfo(); ???????? ?????????if?(networkinfo?==?null?||?!networkinfo.isAvailable())?{ ?????????????return?false; ?????????} ??? ?????????return?true; ??????} ??}</STRONG>?? public class NetworkDetector {public static boolean detect(Activity act) {ConnectivityManager manager = (ConnectivityManager) act.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);if (manager == null) {return false;}NetworkInfo networkinfo = manager.getActiveNetworkInfo();if (networkinfo == null || !networkinfo.isAvailable()) {return false;}return true;}
} ?
?
?
這個類只有一個靜態方法,用來檢測當前系統的網絡是否可用。如果可用,返回true。
還要進一步說明的是,NetworkInfo類中有一個方法getType(),這個方法可以用來判斷當前可用的網絡是wifi,還是mobile等等。
?
再來看使用的例子。
?
?
源碼copy to clipboard打印?
boolean?networkState?=?NetworkDetector.detect(XXXActivity.this); ??if?(!networkState)?{ ??????DialogUtil.openMsgDialog(XXXActivity.this, ?????????????android.R.drawable.ic_dialog_info, ?????????????“網絡不可用,是否現在設置網絡?”,?android.R.string.ok, ?????????????android.R.string.cancel, ?????????????new?DialogInterface.OnClickListener()?{ ????????????????@Override????????????????public?void?onClick(DialogInterface?dialog,?int?which)?{ ????????????????????startActivityForResult(new?Intent( ???????????????????????????ACTION_WIRELESS_SETTINGS),?0); ????????????????} ?????????????},?new?DialogInterface.OnClickListener()?{ ????????????????@Override????????????????public?void?onClick(DialogInterface?dialog,?int?which)?{ ????????????????????dialog.cancel(); ????????????????} ?????????????}).show(); ??}?? boolean networkState = NetworkDetector.detect(XXXActivity.this);if (!networkState) {DialogUtil.openMsgDialog(XXXActivity.this,android.R.drawable.ic_dialog_info,“網絡不可用,是否現在設置網絡?”, android.R.string.ok,android.R.string.cancel,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {startActivityForResult(new Intent(ACTION_WIRELESS_SETTINGS), 0);}}, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.cancel();}}).show();}
?
?
?
其中XXXActivity是我自己的Activity類,DialogUtil是我自己定義的Dialog應用類。這里的代碼片段,是在判斷沒有網絡的情況下,彈出dialog,提示用戶是否進入系統的網絡設置界面。
?
因為以上代碼用到了權限,需要在AndroidManifest文件中加入如下權限代碼:
??? <uses-permission
?????? android:name="android.permission.ACCESS_NETWORK_STATE" />
轉載于:https://www.cnblogs.com/wangqiuli5552/articles/2524110.html
總結
以上是生活随笔為你收集整理的转:Android判断当前网络是否可用--示例代码的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。