gpt4 book ai didi

android - ConnectivityManager 空指针

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:51 25 4
gpt4 key购买 nike

在此处显示的代码中出现空指针问题。通常,空指针是一种简单易行的修复方法,但在这种情况下,我完全迷失了原因。

空指针在这一行:

dataConnectionStatus = connManager.getActiveNetworkInfo().isConnected();

下面显示的代码位于 onCreate 方法的开头。我之前使用类似的代码来检查 wifi 连接是否处于 Activity 状态。在这种情况下,我需要检查 wifi 或 3g 数据连接是否处于 Activity 状态。

空指针崩溃的情况是wifi和3g移动数据都关闭的时候。在这种情况下如何避免 null?

ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

boolean dataConnectionStatus = false;

if(connManager!=null){
dataConnectionStatus = connManager.getActiveNetworkInfo().isConnected(); //<-NULL
}

最佳答案

getActiveNetworkInfo() 正在返回 null

正如文档所说,

Returns details about the currently active default data network. When connected, this network is the default route for outgoing connections. You should always check isConnected() before initiating network traffic. This may return null when there is no default network.

因此,请确保您可以访问 Activity 网络。

您可以尝试以下操作:

    public static boolean isInternetAvailable(Context cxt) {

ConnectivityManager cm = (ConnectivityManager) cxt
.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = cm.getActiveNetworkInfo();

if (netInfo != null && netInfo.isConnectedOrConnecting()) {

Log.i("NetworkStatus :", "Network connection available.");
return true;
}

return false;
}

关于android - ConnectivityManager 空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18735370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com