当onCallStateChanged收到一个未知呼叫(屏蔽号码)时,android应用程序崩溃

当onCallStateChanged收到一个未知呼叫(屏蔽号码)时,android应用程序崩溃,android,call,telephonymanager,phone-state-listener,Android,Call,Telephonymanager,Phone State Listener,我想知道打电话给我申请的人的电话号码。但当我收到一个蒙面号码时,我的应用程序崩溃了。我使用onCallStateChanged()。我简化了测试代码。它仍然崩溃了。以下是代码(它们在活动中): 还有我的错误: 01-29 12:10:37.479: W/dalvikvm(7141): threadid=1: thread exiting with uncaught exception (group=0x41ddc700) 01-29 12:10:37.484: E/AndroidRuntime(

我想知道打电话给我申请的人的电话号码。但当我收到一个蒙面号码时,我的应用程序崩溃了。我使用onCallStateChanged()。我简化了测试代码。它仍然崩溃了。以下是代码(它们在活动中):

还有我的错误:

01-29 12:10:37.479: W/dalvikvm(7141): threadid=1: thread exiting with uncaught exception (group=0x41ddc700)
01-29 12:10:37.484: E/AndroidRuntime(7141): FATAL EXCEPTION: main
01-29 12:10:37.484: E/AndroidRuntime(7141): java.lang.NullPointerException
01-29 12:10:37.484: E/AndroidRuntime(7141):     at com.aif.app.MonitorCallingService$1.onCallStateChanged(MonitorCallingService.java:77)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:454)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at android.os.Looper.loop(Looper.java:176)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at android.app.ActivityThread.main(ActivityThread.java:5419)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at java.lang.reflect.Method.invokeNative(Native Method)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at java.lang.reflect.Method.invoke(Method.java:525)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
01-29 12:10:37.484: E/AndroidRuntime(7141):     at dalvik.system.NativeStart.main(Native Method)
是否有可能在函数onCallStateChanged()中有一个带掩码的内部错误


有人能帮我吗?非常感谢。

我的猜测:参数
incomingNumber
为空。因此,请更改if语句:

if(incomingNumber != null || incomingNumber.isEmpty())

在onCallStateChanged中使用try catch块。

当onCallStateChanged()接收到未知数字时,参数incomingNumber为null,而不是字符串对象。因此,任何对对象字符串函数的调用都将调用error。因为对象不存在。因此,if中的条件应为

if(incomingNumber!=null) or if(incomingNumber==null)

这是一个空字符串和一个空字符串的问题。

请看我自己的答案。这是一个空字符串和一个空字符串的问题。谢谢。
if(incomingNumber!=null) or if(incomingNumber==null)