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复制一些代码之外,您还可以添加一些其他信息吗?试试看!你应该能够得到我尝试过的代码,但它没有工作