sms sent/receive time accuracy (an Android design choice, as I understand it) is something that really bugs me since I moved to Android/GOS from BB OS10.

My phone is mostly off. When I turn on the Android/GOS phone to check for sms, the sms sent/receive time for any sms whilst the phone was off will always be the time my phone received the message which will be the time I turned the phone on and not the time the other party sent the message - bonkers. When I first realised this ridiculous deisgn decision, I did a bit of research about it.

Someone here has also recently started a post 'Help with SMS'. My new post is probably relevant to that but I think better as a separate thread because it is a more generalised observation about AOSP/sms.

If you are interested, I really recommend a read of this comment. I can't vouch for the accuracy, but it does seem an authoritative statement to me. I'm including a small extract:
https://xdaforums.com/t/q-sms-time-sent-vs-received.2695980/#post-51414758

How SMS are received/stored in Android:
In Android there exists a system wide database where the received SMS messages get stored into. When a SMS arrives, a system service parses the raw PDU packet it received from the modem part of your phone and stores the SMS data into the system database.

The problem:
When implementing this SMS database and the receiving service Google made two decisions:

  • they decided that the timestamp from the provider might not be reliable and
  • they initially only included ONE "date" field in the system database (you can see the structure of this database table in old Android 2.2 here: Android 2.2 SMS database structure).

As a result we ended up having only one time field for a SMS and the SMS receiver service filled this time field with the current time when it receives the SMS (because it doesn't trust the SMSC timestamp).

We all know GOS must minimise changes from AOSP to minimise maintenance burden and this is not a security issue, but I do wish I could reverse what I regard as a really poor design choice by Google/AOSP.

Also, hope it is OK if I mention, and please don't misunderstand me; if folk here want me to write longer posts like this, please will you give me a little like/feedback so I know I'm not wasting my time making noise in a vacuum or failing to realise that people would prefer I made less noise :)

I would welcome someone here to confirm the accuracy of the above statements about sms receipt times and for a discussion on this from the wise folk on this forum.

Just going to add for emphasis - as the sms receiving party the most useful date/time information is when did the sender send the sms. Inexplicably, Android/AOSP seems to throw that data away (because it might be inaccurate).

The when phone received date/time stamp data, that AOSP chooses to use, is of little value to the recipient because they will know when they read the sms. The sender has sms received receipts to learn when the receiving phone acknowledged receipt.

Every SMS message stored in the SMS database contains BOTH the SENT time as well as the RECEIVED time. Try using a better SMS application if you want to gain access to both, like QKSMS.

    bookreader Thank you. You motivate me to explore this further.

    Perhaps there is also an app that allows me to look at the SMS database in Read-Only mode without needing further permissions than 'access SMS database'. Has anyone encountered such a thing?

    I will use F-droid sourced apps. Searching the forum here and as you suggest, it looks like I need to look at QKSMS (¿maintenance?) / QuikSMS (fork), Fossify (¿ex SimpleSMS?) & Deku.

    I prefer to keep things simple (battery life & more secure perhaps) by using the default apps. But you got me thinking that perhaps I can continue to use the default GOS/AOSP Messages/SMS app and just enable/open QKSMS if I really want to know when someone sent me an sms. Might work, I'll experiment.

    Things I will consider:

    • If QKSMS is no longer maintained, do I try the fork QuikSMS ?
    • Can I avoid setting QKSMS as the default messaging app and still access the sms database ?
    • Can QKSMS access the SMS database from all profiles? So perhaps a nice work around for me would be to install QKSMS in one of my secondary profiles and just go there if I need to know when the SMS was sent.

    I will report back, thanks for your pointer.

      tornsail-smllwng Haaa, you solved it for me. Thank you so much :)
      Very happy at this end. How do I mark a thread as solved?

      So, for future readers, this is what I learned. The short answer is that:

      • both send and receive SMS data are available within both the default GOS/AOSP14 app and QKSMS (but not Fossify-Messages, as far as I could determine).
      • Open a message thread > long press the message > choose the (i) icon > send & receive date/time data is shown.

      I'd like to rename this thread:

      "Checking SMS sent / received times - SOLVED"

      Is this something a moderator can do?

      So, for future readers, this is what I learned.

      The short answer is that:

      • sent time and receive time SMS data are available, within both the default GOS/AOSP14 app and QKSMS (but not Fossify-Messages, as far as I could determine).
      • Open a message thread > long press the message > choose the (i) icon > sent & receive date/time data is shown.

      The long answer:

      • The GOS/AOSP14 default Messaging App does do this, I was just too dim to find it. My problem was that I had tried long pressing on the message to see if that did anything, but I was doing this at the top level and not within the message's own thread, where a long press does offer an (i) option.
      • QKSMS has a nice interface and the same message>long-press>(i) shows the message data.
      • If you choose not to make QKSMS the default SMS, then it still opens showing the messages it had access to when it was last the default app.
      • This is nice because you can use QKSMS to backup/restore your SMS: I always prefer to just use the default apps, but QKSMS is still useful because it has backup & restore SMS options in the menu.
      • Fossify Messages (= SimpleSMS, I believe) does not seem to show the sent time of an SMS, it shows only the time the phone received the message.
      • Fossify Messages will not open/work unless it is set as the default SMS app.

      Thanks to @bookreader for pointing me in the right direction.

      • [deleted]

      ErnestThornhill I am talking about @NewOldGuy

      Hopefully he comes back to read it before he becomes OldOldGuy. I do not wish to get banned again for combative attitude.

        [deleted] ErnestThornhill for completeness:

        Confirmation of SMS Delivery / Retrieval

        BB OS gives an SMS status report = retrieved if you have enabled delivery reports. 22 years ago, using my Siemens S55, this was how I could trigger someone else's phone to tell me as soon as their plane had landed ;) I do miss small, pebble like phones. QKSMS is now doing one better and showing Delivered: date, time.

        The AOSP/GOS default Messaging app has always shown me a tick when an SMS I sent has been delivered, but there is no further delivery data available that I can find. A long touch > (i) shows Sent: date, time.

        QKSMS will show the date/time an SMS you sent was delivered/received if you short touch the sent message. A long touch > (i) gives both Sent: date, time and Delivered: date, time.

        6 months later

        Thank you for your help. I will try QKSMS again and see if that works for me. (I believe I did try it before, but may have missed the appropriate steps.)

        I have been using Fossify and watching for the second check mark, indicating it was received, but without any time stamp. I also did not see a way to tell about any but the last message. When the last message is sent, the check marks disappear from previous messages.

        If QKSMS works, this is will be a big improvement.

        Thanks again.