Android获取Sim State

时间:2011-07-20 16:38:41

标签: java android

我正在尝试将sims状态打印到屏幕上。目前我似乎无法让它发挥作用。 如果SIM卡被锁定,我希望能够打印。

我一直在使用此代码

    TelephonyManager manager = (TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE);
    int state = manager.getSimState();
    answer1.setText(state);

但LogCat输出是

  

错误/ AndroidRuntime(213):未捕获的处理程序:由于未捕获的异常而导致主线程退出   ERROR / AndroidRuntime(213):java.lang.RuntimeException:无法启动活动ComponentInfo {com.q.m / com.q.m.Q}:java.lang.NullPointerException   ERROR / AndroidRuntime(213):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)   ERROR / AndroidRuntime(213):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)   错误/ AndroidRuntime(213):在android.app.ActivityThread.access $ 2100(ActivityThread.java:116)   错误/ AndroidRuntime(213):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1794)   错误/ AndroidRuntime(213):在android.os.Handler.dispatchMessage(Handler.java:99)   错误/ AndroidRuntime(213):在android.os.Looper.loop(Looper.java:123)   错误/ AndroidRuntime(213):在android.app.ActivityThread.main(ActivityThread.java:4203)   ERROR / AndroidRuntime(213):at java.lang.reflect.Method.invokeNative(Native Method)   ERROR / AndroidRuntime(213):at java.lang.reflect.Method.invoke(Method.java:521)   ERROR / AndroidRuntime(213):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:791)   ERROR / AndroidRuntime(213):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)   错误/ AndroidRuntime(213):at dalvik.system.NativeStart.main(Native Method)   ERROR / AndroidRuntime(213):引起:java.lang.NullPointerException   ERROR / AndroidRuntime(213):at com.q.m.Q.onCreate(Q.java:77)   ERROR / AndroidRuntime(213):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)   错误/ AndroidRuntime(213):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)   错误/ AndroidRuntime(213):... 11更多

第77行是

  

TelephonyManager manager =(TelephonyManager)

2 个答案:

答案 0 :(得分:0)

您似乎将int传递给需要字符串的函数。

替换

answer1.setText(state);

answer1.setText(Integer.toString(state));

答案 1 :(得分:-1)

您应该检查您是否在清单文件中设置了READ_PHONE_STATE权限,并且还要调用

    answer.setText(state)

你正在调用TextView的

    setText(int resId)

方法,它正在查找带有提供的id的文本资源。