收到的短信包含大量数字时,Android短信应用会崩溃

时间:2015-08-09 05:19:57

标签: java android

我已经编写了以下代码来获取手机中收到的短信         package com.example.recieveandsendsms;

    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>

当我收到正常消息时它工作正常 意思是例子:他没有生气或不高兴我记得 和我们一起被吸引了一点点。

当Ex1中的消息出现时,它可以正常工作

但是当Ex2:UB 9000000000 9787878787-asghkajhsgk kjashgkas

但是当像Ex2这样的短信符合应用程序崩溃时我无法解决Ex2中的错误

请有人帮我告诉我哪里出错了

1 个答案:

答案 0 :(得分:0)

用于读取和写入数据的库版本不匹配,因此崩溃并且没有出现任何错误:(