Cha*_*les 16 android android-internet android-permissions
我是Android开发的新手,正在开发一款Android应用程序,需要通过Wifi,EDGE或3G将手机连接到互联网.
这是我用来检查互联网连接是否可用的代码
public static boolean isConnected()
{
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
}
Run Code Online (Sandbox Code Playgroud)
我还在清单文件中设置了这些权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)
当启用3G时,这在运行Android 1.5版的模拟器中工作正常,但是当我禁用3G连接时它会崩溃.当我调用isConnectedOrConnecting()时,我的应用程序抛出空指针异常.运行Android 2.1的HTC Desire也会发生同样的事情.
希望有人知道解决这个问题.
提前致谢!
Com*_*are 25
如果崩溃直接在您的线路上:
return cm.getActiveNetworkInfo().isConnectedOrConnecting();
Run Code Online (Sandbox Code Playgroud)
然后这意味着getActiveNetworkInfo()返回null,因为没有活动网络 - 在这种情况下,您的isConnected()方法应该返回false.
我写了这个方法来处理这个:
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni!=null && ni.isAvailable() && ni.isConnected()) {
return true;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
一种方法,我猜...
| 归档时间: |
|
| 查看次数: |
24489 次 |
| 最近记录: |