Android 在应用程序上下文中获取移动状态
我想知道我的应用程序启动时是否有移动网络,我正在这样做:Android 在应用程序上下文中获取移动状态,android,Android,我想知道我的应用程序启动时是否有移动网络,我正在这样做: final ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo mobileInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 在我的start应用程序类中
final ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo mobileInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
在我的start应用程序类中:
public class StartApplication extends Application {
我犯了一些错误:
04-23 14:41:36.683: E/AndroidRuntime(1280): FATAL EXCEPTION: main
04-23 14:41:36.683: E/AndroidRuntime(1280): java.lang.RuntimeException: Unable to instantiate application com.chipsat.sigue.StartApplication: java.lang.NullPointerException
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4364)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.ActivityThread.access$1300(ActivityThread.java:141)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.os.Looper.loop(Looper.java:137)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 14:41:36.683: E/AndroidRuntime(1280): at java.lang.reflect.Method.invokeNative(Native Method)
04-23 14:41:36.683: E/AndroidRuntime(1280): at java.lang.reflect.Method.invoke(Method.java:511)
04-23 14:41:36.683: E/AndroidRuntime(1280): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 14:41:36.683: E/AndroidRuntime(1280): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 14:41:36.683: E/AndroidRuntime(1280): at dalvik.system.NativeStart.main(Native Method)
04-23 14:41:36.683: E/AndroidRuntime(1280): Caused by: java.lang.NullPointerException
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.content.ContextWrapper.getSystemService(ContextWrapper.java:495)
04-23 14:41:36.683: E/AndroidRuntime(1280): at com.chipsat.sigue.StartApplication.<init>(StartApplication.java:82)
04-23 14:41:36.683: E/AndroidRuntime(1280): at java.lang.Class.newInstanceImpl(Native Method)
04-23 14:41:36.683: E/AndroidRuntime(1280): at java.lang.Class.newInstance(Class.java:1319)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.Instrumentation.newApplication(Instrumentation.java:983)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.Instrumentation.newApplication(Instrumentation.java:968)
04-23 14:41:36.683: E/AndroidRuntime(1280): at android.app.LoadedApk.makeApplication(LoadedApk.java:499)
04-23 14:41:36.683: E/AndroidRuntime(1280): ... 11 more
04-23 14:41:36.683:E/AndroidRuntime(1280):致命异常:main
04-23 14:41:36.683:E/AndroidRuntime(1280):java.lang.RuntimeException:无法实例化应用程序com.chipsat.sigue.StartApplication:java.lang.NullPointerException
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.app.LoadedApk.makeApplication(LoadedApk.java:504)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于android.app.ActivityThread.handleBindApplication(ActivityThread.java:4364)
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.app.ActivityThread.access$1300(ActivityThread.java:141)
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于android.os.Handler.dispatchMessage(Handler.java:99)
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.os.Looper.loop(Looper.java:137)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于android.app.ActivityThread.main(ActivityThread.java:5041)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于java.lang.reflect.Method.Invokenactive(本机方法)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于java.lang.reflect.Method.invoke(Method.java:511)
04-23 14:41:36.683:E/AndroidRuntime(1280):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-23 14:41:36.683:E/AndroidRuntime(1280):在dalvik.system.NativeStart.main(本机方法)
04-23 14:41:36.683:E/AndroidRuntime(1280):由以下原因引起:java.lang.NullPointerException
04-23 14:41:36.683:E/AndroidRuntime(1280):位于android.content.ContextWrapper.getSystemService(ContextWrapper.java:495)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于com.chipsat.sigue.StartApplication.(StartApplication.java:82)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于java.lang.Class.newInstanceImpl(本机方法)
04-23 14:41:36.683:E/AndroidRuntime(1280):位于java.lang.Class.newInstance(Class.java:1319)
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.app.Instrumentation.newApplication(Instrumentation.java:983)上
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.app.Instrumentation.newApplication(Instrumentation.java:968)上
04-23 14:41:36.683:E/AndroidRuntime(1280):在android.app.LoadedApk.makeApplication(LoadedApk.java:499)上
04-23 14:41:36.683:E/AndroidRuntime(1280):。。。还有11个
我想问题是在onCreate之前调用getSystemService。
你可以检查一下。基本上,当您使用它时,上下文还不可用
编辑:我不是100%确定,但您可以尝试:
ConnectivityManager connMgr;
android.net.NetworkInfo mobileInfo
//in onCreate
connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
mobileInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
注意:代码没有经过测试。我想问题是在onCreate之前调用getSystemService。 你可以检查一下。基本上,当您使用它时,上下文还不可用 编辑:我不是100%确定,但您可以尝试:
ConnectivityManager connMgr;
android.net.NetworkInfo mobileInfo
//in onCreate
connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
mobileInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
注意:代码未经测试。是否在onCreate之前调用getSystemService?是的,它是通过manifest
调用的?是否在onCreate之前调用getSystemService?是的,它是通过manifesthmmm调用的,并且有一些解决方案?hmmm,并且有一些解决方案?