2017-12-31 114 views
-1

Hier verwende ich BroadcastReceiver zum Lesen von eingehenden SMS.erhalten gesendet und empfangen Zeit für eingehende SMS

@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); 

     } 
    } 

wie kann ich erhalten und empfangen Zeit von SMS von diesem.

Antwort

0

Ein Teil Ihrer Frage wurde bereits beantwortet here.

Um die Sendezeit zu erhalten, müssen Sie die Methode getTimestampMillis() verwenden.

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

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

Um die Empfangszeit zu erhalten, verwenden Sie 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... 
Verwandte Themen