在具有多个SIM卡的设备中检索ConnectivityManager

我有一个问题获取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) 

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

谢谢,迭戈

Solutions Collecting From Web of "在具有多个SIM卡的设备中检索ConnectivityManager"

连接服务为空。

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

请检查连接服务是否正在您的设备上运行。

 adb shell service list | grep connectivity 13 connectivity_metrics_logger: [android.net.IConnectivityMetricsLogger] 64 connectivity: [android.net.IConnectivityManager] 

如果你正面临着IconnectivityManager的问题,那么你可能会在某些时候或某些情况下得到上下文null。由于你可能在一个上下文可能为null的服务中这样做,所以你可以做一件事情,比如:

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

像这样>>