權限:
<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;
}