Android 判斷手機是否連網時異常閃退,android連網
寫了個函數來判斷手機是否連網,但是發現,在手機連網狀態下一切正常,而當手機斷網時則會發現閃退。
首先第一反應是會不會是沒在AndroidManifest.xml檔案中設定連網許可權:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
發現有這段語句,那麼是在哪裡出錯呢,我最初的代碼是這樣的:
/**判斷網路是否可用 * @param context * @return */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); return cm.getActiveNetworkInfo().isAvailable(); }
經過調試,發現當我斷網狀態下,我在cm.getActiveNetworkInfo()中返回的NetworkInfo執行個體是個null 指標,此時調用isAvailable()發生錯誤。所以要對NetworkInfo執行個體進行判斷。
public static boolean isNetworkAvailable(Context context) { try {ConnectivityManager manger = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = manger.getActiveNetworkInfo(); //return (info!=null && info.isConnected());// if(info != null){ return info.isConnected(); }else{ return false; }} catch (Exception e) { return false;} }