我偶尔会在连接管理器中看到空指针异常。从 Intent 服务中,我通过 isOnWIFI(this) 检查网络状态。异常发生在 cm.getActiveNetworkInfo() 行。这很奇怪,因为我在调用它之前检查了 null。 注意:权限已设置。
public static boolean isOnWIFI(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return cm != null
//here occurs NullPointerException
&& cm.getActiveNetworkInfo() != null
&& ((cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null && cm.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).isConnected()));
}
有没有想过为什么会这样?我无法调试它,因为它只是偶尔来自错误报告。我看到的唯一解决方案是将其放入 try catch block 中。谢谢。
最佳答案
您是否检查了 api,如果没有 Activity 连接,它们会被提及,它们只是返回 null 我认为这是您的问题。
http://developer.android.com/reference/android/net/ConnectivityManager.html #getActiveNetworkInfo()
关于android - ConnectivityManager getActiveNetworkInfo 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16397494/