android 連接網絡ping

權限:

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

獲取網絡連接信息

ConnectivityManager connectivityManager = (ConnectivityManager) this
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager
                .getActiveNetworkInfo();
        //activeNetworkInfo.isAvailable();//是否可用
        //activeNetworkInfo.isConnectedOrConnecting();//是否已連接
        if (activeNetworkInfo != null) {
            int type = activeNetworkInfo.getType();
            System.out.println("連接類型 "+type);
            ping();
            if (type == ConnectivityManager.TYPE_MOBILE) {

            } else if (type == ConnectivityManager.TYPE_WIFI){

            } else if (type == ConnectivityManager.TYPE_BLUETOOTH){

            }
        }

ping測試網絡

  public  boolean ping() {
        try {
            String ip = "www.baidu.com";
            //-c: 表示次數,1 爲1次 -w: 表示deadline, time out的時間,單位爲秒,5爲5秒。
            Process p = Runtime.getRuntime().exec("ping -c 1 -w 5 " + ip);
            InputStream input = p.getInputStream();
            BufferedReader in = new BufferedReader(new InputStreamReader(input));
            StringBuffer stringBuffer = new StringBuffer();
            String content = "";
            while ((content = in.readLine()) != null) {
                stringBuffer.append(content);
            }
            Log.e("content : ", stringBuffer.toString());
            //waitfor()命令之前讀出窗口的標準輸出緩衝區和標準錯誤流的內容
            int status = p.waitFor();
            if (status == 0) {
                return true;
            }
        } catch (IOException e) {

        } catch (InterruptedException e) {

        }
        return false;

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章