检测Android上是否有可用的Internet连接我需要检测一下Android设备是否连接到互联网上。这个NetworkInfo类提供非静态方法。isAvailable()听起来很完美。问题是:NetworkInfo ni = new NetworkInfo();if (!ni.isAvailable()) {
// do something}抛出此错误:The constructor NetworkInfo is not visible.可以肯定的是,还有另一个类返回NetworkInfo对象。但我不知道是哪一个。如何使上述代码片段工作?我怎么能在网上文档中找到我所需要的信息呢?你能为这种类型的检测提出更好的方法吗?
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
getActiveNetworkInfo()
ConnectivityManager
NetworkInfo
null
null
private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected();}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
编辑:
红颜莎娜
TA贡献1842条经验 获得超12个赞
private boolean haveNetworkConnection() { boolean haveConnectedWifi = false; boolean haveConnectedMobile = false; ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo[] netInfo = cm.getAllNetworkInfo(); for (NetworkInfo ni : netInfo) { if (ni.getTypeName().equalsIgnoreCase("WIFI")) if (ni.isConnected()) haveConnectedWifi = true; if (ni.getTypeName().equalsIgnoreCase("MOBILE")) if (ni.isConnected()) haveConnectedMobile = true; } return haveConnectedWifi || haveConnectedMobile;}
添加回答
举报
0/150
提交
取消