简体   繁体   中英

Android SMS app Crashes when received sms contains lots of numbers

i have written the following code to get the received sms in phone 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();

                    }
                }
        }
    }

Following is my manifest file:

    <?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>

it works fine when I receive the normal message means example Ex1: He was not angry or upset I was remember was drawn on with us just a little thing.

when message in Ex1 comes it works fine

but when Ex2: UB 9000000000 9787878787-asghkajhsgk kjashgkas

but when sms like Ex2 compes the application crashes i am not able get what is wrong the message in Ex2

Please anyone can help me to tell where i am going wrong

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM