在具有多 SIM 卡的设备中检索 ConnectivityManager 时出现问题

Issue retrieving ConnectivityManager in a device with multi sim

提问人:Diego Gómez Olvera 提问时间:10/27/2014 更新时间:7/25/2017 访问量:1231

问:

我在获取 ConnectivityManager 时遇到问题:

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

我正在使用应用程序上下文,并收到此错误:

Caused by: java.lang.NullPointerException: missing IConnectivityManager
at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:52)
at android.net.ConnectivityManager.<init>(ConnectivityManager.java:1045)
at android.net.MultiSimConnectivityManager.<init>(MultiSimConnectivityManager.java:86)
at android.app.ContextImpl$12.createService(ContextImpl.java:463)
at android.app.ContextImpl$ServiceFetcher.getService(ContextImpl.java:346)
at android.app.ContextImpl.getSystemService(ContextImpl.java:2036)
at android.content.ContextWrapper.getSystemService(ContextWrapper.java:551)

你见过这个问题吗?有什么办法可以解决吗?

谢谢 迭 戈。

Android NullPointerException 连接

评论

0赞 Naveen Tamrakar 10/27/2014
可能是这个上下文是空的,请检查这个
0赞 Naveen Tamrakar 10/27/2014
还要检查清单权限
0赞 Diego Gómez Olvera 10/27/2014
我正在调用context.getApplicationContext(),它不能为null。<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” /> 就在那里。
0赞 Lips_coder 5/13/2016
你能发布完整的code.@Diego戈麦斯·奥尔维拉吗

答:

0赞 You Kim 3/8/2017 #1

Connectivity Service 为 null。

public ConnectivityManager(Context context, IConnectivityManager service) {
    mContext = checkNotNull(context, "missing context");
    mService = checkNotNull(service, "missing IConnectivityManager");
    sInstance = this;
}

请检查您的设备是否正在运行 Connectivity Service。

adb shell service list | grep connectivity
13      connectivity_metrics_logger: [android.net.IConnectivityMetricsLogger]
64      connectivity: [android.net.IConnectivityManager]
0赞 Siddharth Choudhary 7/25/2017 #2

如果您遇到 IconnectivityManager 的此类问题,那么您可能会在某些时候或在某些情况下获得上下文 null。 由于您可能在上下文可能为 null 的服务中执行此操作,因此您可以执行以下操作:

 if (context != null) {
        ConnectivityManager cm =
                (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

像这样的东西>>