由于广播接收器每当发送新消息时都会像收到新消息一样监听新消息如何获取消息及其详细信息。Android:获取发送的消息(发件箱)?
public class incomingSms extends BroadcastReceiver
{
final SmsManager sms = SmsManager.getDefault();
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String message = currentMessage.getDisplayMessageBody();
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
Date date = new Date(currentMessage.getTimestampMillis());
String formattedDate = new SimpleDateFormat("MM/dd/yyyy").format(date);
long time=date.getTime();
String formattedTime = new SimpleDateFormat("hh:mm:ss").format(time);
Toast.makeText(context,"recieved sms "+"senderNum: "+ phoneNumber + ", message: " + message+ " , date:" + formattedDate + ",time: "+formattedTime , Toast.LENGTH_LONG).show();
MyDBHandler db = new MyDBHandler(context);
int f_id=1;
db.insertDat2(new DataSetGet(f_id,phoneNumber,message,formattedDate,formattedTime));
// addData(phoneNumber,message,formattedDate,formattedTime);
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
SmsMessage[] msgs = null;
if (bundle != null) {
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]);
String no = "SMS from " + msgs[i].getOriginatingAddress() + " : ";
String message= msgs[i].getMessageBody().toString();
Toast.makeText(context,"sent message "+"no: "+no+" message: "+ message,Toast.LENGTH_LONG).show();
}
}
}
当我发送信息时,现在的烤面包没有出现。
- 运行的应用程序。
- 发送消息给一个号码。
- 吐司没有出现。
- 收到消息,从数
- 现在发送消息的面包出现
嗨,欢迎来到堆栈溢出。有关如何提出问题并相应地更新您的问题的详细信息,请参见[问问]链接 。 –