Android檢測是否有網絡的代碼

jopen 10年前發布 | 35K 次閱讀 Android Android開發 移動開發

主要是用來檢測是否有網絡,如果沒有,就去wifi里面去進行設置網絡。。。

  下面貼一下主要代碼:

 

    private void checkNetWorkInfo() {  
            if (!Tools.isNetworkAvailable(this)) {  
                new AlertDialog.Builder(this)  
                        .setTitle("提示!")  
                        .setIcon(android.R.drawable.ic_dialog_info)  
                        .setMessage("檢測到你還沒開啟網絡,請開啟")  
                        .setNegativeButton("取消", null)  
                        .setPositiveButton("開啟",  
                                new DialogInterface.OnClickListener() {  

                                    @Override  
                                    public void onClick(DialogInterface dialog,  
                                            int which) {  
                                        startActivity(new Intent(  
                                                Settings.ACTION_WIRELESS_SETTINGS));// 進入無線網絡配置界面  
                                        startActivity(new Intent(  
                                                Settings.ACTION_WIFI_SETTINGS)); // 進入手機中的wifi網絡設置界面  
                                    }  
                                }).show();  
            }  
        }  

 

isNetworkAvailable里面的代碼:

/*  
     * 判斷是否有網絡  
     */  
    public static boolean isNetworkAvailable(Context context) {  
        ConnectivityManager cm = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        if (cm == null) {  
            return false;  
        } else {  
            // 打印所有的網絡狀態  
            NetworkInfo[] infos = cm.getAllNetworkInfo();  
            if (infos != null) {  
                for (int i = 0; i < infos.length; i++) {  
                    // Log.d(TAG, "isNetworkAvailable - info: " +  
                    // infos[i].toString());  
                    if (infos[i].getState() == NetworkInfo.State.CONNECTED) {  
                        Log.d(TAG, "isNetworkAvailable -  I " + i);  
                    }  
                }  
            }  

            // 如果僅僅是用來判斷網絡連接        
            // 則可以使用 cm.getActiveNetworkInfo().isAvailable();  
            NetworkInfo networkInfo = cm.getActiveNetworkInfo();  
            if (networkInfo != null) {  
                Log.d(TAG,  
                        "isNetworkAvailable - 是否有網絡: "  
                                + networkInfo.isAvailable());  
            } else {  
                Log.d(TAG, "isNetworkAvailable - 完成沒有網絡!");  
                return false;  
            }  

            // 1、判斷是否有3G網絡  
            if (networkInfo != null  
                    && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {  
                Log.d(TAG, "isNetworkAvailable - 有3G網絡");  
                return true;  
            } else {  
                Log.d(TAG, "isNetworkAvailable - 沒有3G網絡");  
            }  

            // 2、判斷是否有wifi連接  
            if (networkInfo != null  
                    && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {  
                Log.d(TAG, "isNetworkAvailable - 有wifi連接");  
                return true;  
            } else {  
                Log.d(TAG, "isNetworkAvailable - 沒有wifi連接");  
            }  
        }  
        return false;  
    }  
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!