2015-08-09 38 views
0

我已經寫了下面的代碼來獲取手機中收到的短信 package com.example.recieveandsendsms;Android短信應用程序在收到短信時崩潰包含大量的數字

public class IncomingSms extends BroadcastReceiver{ 

     final SmsManager sms=SmsManager.getDefault(); 
     @Override 
     public void onReceive(Context context, Intent intent) { 


       Bundle bundle = intent.getExtras();   
       SmsMessage[] msgs = null; 
       String str = "";    
       if (bundle != null) 
       { 
        //---retrieve the SMS message received--- 
        Object[] pdus = (Object[]) bundle.get("pdus"); 
        msgs = new SmsMessage[pdus.length];    
        for (int i=0; i<msgs.length; i++){ 
         msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
         str = msgs[i].getMessageBody().toString(); 

        } 
       } 
     } 
    } 

以下是我的清單文件:

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.recieveandsendsms" 
     android:versionCode="1" 
     android:versionName="1.0" > 

     <uses-sdk 
      android:minSdkVersion="8" 
      android:targetSdkVersion="18" /> 

     <uses-permission android:name="android.permission.SEND_SMS" /> 
     <uses-permission android:name="android.permission.RECEIVE_SMS"> 
     </uses-permission> 
     <uses-permission android:name="android.permission.READ_SMS" /> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
      <uses-permission android:name="android.permission.WRITE_SMS" /> 
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
      <uses-permission android:name="android.permission.READ_CALL_LOG"/> 
      <uses-permission android:name="android.permission.WRITE_CALL_LOG"/> 
      <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 




     <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.example.recieveandsendsms.MainActivity" 
       android:label="@string/app_name" > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 

      <receiver android:name="com.example.recieveandsendsms.IncomingSms"> 
      <intent-filter android:priority="999"> 
       <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
      </intent-filter> 
     </receiver> 

     </application> 

    </manifest> 

當我收到的正常郵件 它工作正常,意味着例如練習1:他是不是生氣或煩惱的我記得 上繪製與我們剛剛一件小事。

當練習1消息來正常工作

但是當練習2:UB 90億9787878787,asghkajhsgk kjashgkas

但當像練習2短信compes應用程序崩潰我不能夠得到的是錯誤的信息EX2

請任何人都可以幫我告訴我要去的地方錯了

+1

post logcat error –

回答

0

庫版本讀取和寫入數據是不匹配的,因此被撞毀,它沒有給任何錯誤:(