2014-02-05 50 views
0

基本即時通訊製造mobilefinder應用到這裏的robber.when我發送消息的周圍聲音被搶手機應該叫我自動自動調用郵件發件人

@Override 
public void onReceive(Context context, Intent intent) { 


    final Bundle bundle = intent.getExtras(); 

    // try { 

    if (bundle != null) { 

     final Object[] pdusObj = (Object[]) bundle.get("pdus"); 

     for (int i = 0; i < pdusObj.length; i++) { 

      SmsMessage currentMessage = SmsMessage 
        .createFromPdu((byte[]) pdusObj[i]); 
      String phoneNumber = currentMessage 
        .getDisplayOriginatingAddress(); 

      String senderNum = phoneNumber; 
      String message = currentMessage.getDisplayMessageBody(); 

      if (message.contains("mfmic")) { 
            Intent dial = new Intent(Intent.ACTION_CALL); 
        dial.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        dial.setData(Uri.parse("tel:" + phoneNumber)); 
        context.startActivity(dial); 
           } 
         }}} 

錯誤的logcat:空指針出現在for循環

02-05 12:35:11.842: E/AndroidRuntime(631): FATAL EXCEPTION: main 
02-05 12:35:11.842: E/AndroidRuntime(631): java.lang.RuntimeException: Unable to start receiver com.example.mobilefinder.Services: java.lang.NullPointerException 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1805) 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.app.ActivityThread.access$2400(ActivityThread.java:117) 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981) 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.os.Looper.loop(Looper.java:123) 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-05 12:35:11.842: E/AndroidRuntime(631): at java.lang.reflect.Method.invokeNative(Native Method) 
02-05 12:35:11.842: E/AndroidRuntime(631): at java.lang.reflect.Method.invoke(Method.java:507) 
02-05 12:35:11.842: E/AndroidRuntime(631): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-05 12:35:11.842: E/AndroidRuntime(631): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-05 12:35:11.842: E/AndroidRuntime(631): at dalvik.system.NativeStart.main(Native Method) 
02-05 12:35:11.842: E/AndroidRuntime(631): Caused by: java.lang.NullPointerException 
02-05 12:35:11.842: E/AndroidRuntime(631): at com.example.mobilefinder.Services.onReceive(Services.java:91) 
02-05 12:35:11.842: E/AndroidRuntime(631): at android.app.ActivityThread.handleReceiver(ActivityThread.java:1794) 
02-05 12:35:11.842: E/AndroidRuntime(631): ... 10 more 

回答

0

您從捆綁中獲得的對象爲null final Object[] pdusObj = (Object[]) bundle.get("pdus");請重新檢查。

+0

是的,我知道,但u能PLZ告訴我該怎麼解決呢? –

0

您可以使用此代碼

public class TextMessageReceiver extends BroadcastReceiver { 

    public void onReceive(Context context, Intent intent) { 
     Bundle bundle = intent.getExtras(); 
     Object[] messages = (Object[]) bundle.get("pdus"); 
     SmsMessage[] sms = new SmsMessage[messages.length]; 
     for (int n = 0; n < messages.length; n++) { 
      sms[n] = SmsMessage.createFromPdu((byte[]) messages[n]); 
       } 
     for (SmsMessage msg : sms) { 
        //message body 'msg.getMessageBody()' 
        //message sender 'msg.getOriginatingAddress()' 
        String number = "tel:" + msg.getOriginatingAddress(); 
       Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse(number)); 
       startActivity(callIntent); 
       } 
     } 
+0

沒有改變同樣的錯誤... :( –

+0

你確定嗎?我在想這我的手機和正常工作 –

+0

這裏我要做的是閱讀味精,如果味精等於特定的關鍵字比撥打電話... –