收到短信的发送和接收时间

问题描述 投票:0回答:1

在这里,我使用BroadcastReceiver读取传入的短信。

 @Override
    public void onReceive(Context context, Intent intent) {
        final Bundle bundle = intent.getExtras();
        try {
            if (bundle != null) {
                final Object[] pdusObj = (Object[]) bundle.get("pdus");
                assert pdusObj != null;
                for (int i = 0; i < pdusObj.length; i++) {
                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                    String senderNum = currentMessage.getDisplayOriginatingAddress();
                    String message = currentMessage.getDisplayMessageBody();
                    Log.i("SmsReceiver", "senderNum: " + senderNum + "; message: " + message);

                    Intent myIntent = new Intent("sms_received");
                    myIntent.putExtra("message", message);
                    LocalBroadcastManager.getInstance(context).sendBroadcast(myIntent);
                }
            }

        } catch (Exception e) {
            Log.e("SmsReceiver", "Exception smsReceiver" + e);

        }
    }

我如何从此发送和接收短信的时间。

android sms android-contentprovider
1个回答
0
投票

部分问题已经回答了here

要获得发送时间,您必须使用getTimestampMillis()方法。

Calendar sendTime = Calendar.getInstance();
calendar.setTimeInMillis(smsMessage.getTimestampMillis());

int date = sendTime.get(CALENDAR.DATE);
int hour = sendTime.get(CALENDAR.HOUR_OF_DAY);
// etc...

要获得接收时间,请使用System.currentTimeMillis()。

Calendar receiveTime = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());

int date = receiveTime.get(CALENDAR.DATE);
int hour = receiveTime.get(CALENDAR.HOUR_OF_DAY);
// etc...
© www.soinside.com 2019 - 2024. All rights reserved.