2014-10-27 121 views
9

我有越来越ConnectivityManager一个问题:问题检索ConnectivityManager设备中的多SIM

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) 

你见过这个问题?有什么办法解决它?

谢谢, 迭戈。

+0

可能是这种情况下是空请检查该 – 2014-10-27 13:11:11

+0

也检查清单许可 – 2014-10-27 13:11:38

+0

我打电话context.getApplicationContext(),它亩st不为null。 在那里。 – 2014-10-27 13:18:35

回答

0

连接服务为空。

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] 
0

如果你正面临IconnectivityManager这样的问题,那么你可能会得到上下文空,在某些时候或在某些情况下, 因为你可能在一个服务做这个地方的上下文可能为空从而,你可以做一两件事,如:

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

像这样>>