Java 接收多部分消息

Java 接收多部分消息,java,android,smsmanager,Java,Android,Smsmanager,我是安卓的新手,我做安卓短信应用, 这不是错误,但无法接收长短信(超过160个字符), 这是我的SMSReceiver代码,我的错误代码在哪里?请帮帮我 package com.tugas_akhir; import java.text.SimpleDateFormat; import java.util.Calendar; import model.SMS; import com.niusounds.sqlite.SQLiteDAO; import android.annotation.Sup

我是安卓的新手,我做安卓短信应用,
这不是错误,但无法接收长短信(超过160个字符),
这是我的SMSReceiver代码,我的错误代码在哪里?请帮帮我

package com.tugas_akhir;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import model.SMS;
import com.niusounds.sqlite.SQLiteDAO;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SMSReceiver extends BroadcastReceiver
{
    public SQLiteDAO dao;
public void onReceive(Context paramContext, Intent paramIntent)
{
Toast.makeText(paramContext, "SMS diterima", Toast.LENGTH_LONG).show();
    Calendar localCalendar = Calendar.getInstance();
    SimpleDateFormat localSimpleDateFormat = new SimpleDateFormat("HH:mm, dd MMM yyyy");
    dao = SQLiteDAO.getInstance(paramContext, new Class[] { SMS.class });
    Bundle localBundle = paramIntent.getExtras();
   String str = "";
(SmsMessage[]) = null;
Object[] arrayOfObject = null;
SmsMessage[] arrayOfSmsMessage = null;
if (localBundle != null)
{
  arrayOfObject = (Object[])localBundle.get("pdus");
  arrayOfSmsMessage = new SmsMessage[arrayOfObject.length];
}
for (int i = 0; ; i++)
{
    if (i >= arrayOfSmsMessage.length)

  {
    Toast.makeText(paramContext, "TERIMA SMS : " + str, Toast.LENGTH_SHORT).show();
    return;
  }
//insert into table
  arrayOfSmsMessage[i] = SmsMessage.createFromPdu((byte[])arrayOfObject[i]);
  SMS localSMS = new SMS();
  str = arrayOfSmsMessage[i].getMessageBody().toString();
  localSMS.setNoHp(arrayOfSmsMessage[i].getOriginatingAddress().toString());
  localSMS.setPesan(arrayOfSmsMessage[i].getMessageBody().toString());
  localSMS.setTime(localSimpleDateFormat.format(localCalendar.getTime()));

  dao.insert(localSMS);
  }
  }
  }

帮助我..

尝试此类以接收消息

public class SmsReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        //---get the SMS message passed in---
        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 += "SMS from " + msgs[i].getOriginatingAddress();
                str += " :";
                str += msgs[i].getMessageBody().toString();
                str += "\n";
            }
            String replyPhone = msgs[0].getOriginatingAddress();
            String request = msgs[0].getMessageBody().toString();
            //---display the new SMS message---
            //  Toast.makeText(context, str + "    " + replyPhone + "\n" + request, Toast.LENGTH_LONG).show();

            Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
            vibrator.vibrate(1000);

        }
    }
}
公共类SmsReceiver扩展了BroadcastReceiver{
公共void onReceive(上下文、意图){
//---获取传入的SMS消息---
Bundle=intent.getExtras();
SmsMessage[]msgs=null;
字符串str=“”;
if(bundle!=null){
//---检索收到的SMS消息---
Object[]pdus=(Object[])bundle.get(“pdus”);
msgs=新SMS消息[PDU.length];
对于(int i=0;i
除了从internet复制一些代码之外,您还可以添加一些其他信息吗?试试看!你应该能够得到我尝试过的代码,但它没有工作