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