2017-12-31 128 views
-1

ここでは、着信SMSの読み取りにBroadcastReceiverを使用しています。着信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); 

     } 
    } 

どのようにしてこれからSMSの送受信時間を得ることができますか。

答えて

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... 
関連する問題