有的时候我们的应用可能需要判断当前设备是否联网
1 private void init() { 2 /** 获得系统级联网管理员对象 */ 3 ConnectivityManager manager = (ConnectivityManager) this 4 .getSystemService(CONNECTIVITY_SERVICE); 5 NetworkInfo info = manager.getActiveNetworkInfo(); 6 if (info == null) { // 无网情况下 7 // 跳转到网络设置页面 8 startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); 9 } else { // 有网情况下 10 if (info.isAvailable()) { // 网络可用时 11 /** 是手机自带的联网方式 */ 12 if (info.getType() == ConnectivityManager.TYPE_MOBILE) { 13 if (info.getState() == State.CONNECTED) { 14 Toast.makeText( 15 MainActivity.this, 16 "手机网络可用并已连接" + "\n" + "连接网络方式为:\n" 17 + info.getType() + ",MOBILE", 1).show(); 18 } 19 /** WIFI联网方式 */ 20 } else { 21 Toast.makeText(MainActivity.this, 22 "连接网络方式为:" + info.getType() + ",WI-FI", 1).show(); 23 startActivity(new Intent( 24 android.provider.Settings.ACTION_WIFI_SETTINGS)); 25 } 26 } else { 27 Toast.makeText(MainActivity.this, "手机网络不可用", 1).show(); 28 } 29 } 30 }
不过最后注意增加以下权限,允许程序访问有关GSM网络信息(Allows applications to accessinformation about networks),不然会报错
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>