Mute SMS audio notification My phone is kept always on vibrate mode. When the screen is on and I get an SMS I can see the pop up notification and that's fine. Problem is when the screen is off - SMS sender name is read out aloud " Message from [sender name]" preceded by two long vibrations

I find this highly annoying sometimes and found no setting to mute this ( to replicate screen on behavior). I don't  want to activate DND mode because I want to know that I have a text message waiting to be read via  vibrate buzz

Surprised to see that no one complains of this on the net so obviously no solution ( Imagine your phone is on vibrate in a meeting but your phone announces to the world message from AXAIRNF or some embarrassing contact name) I tried automation, some Xposed / Magisk modules but none worked

Edit These additional attempts didn't help


Switching off the notification of SMS app
Trying alternate apps such as Textra etc
Putting the device on low ringer / notification volume when screen is off
Suspecting Text-to-Speech to be the culprit, killed that service when screen is off - no luck


Any solutions # including rooted means?

Mia1 stock 8.1 rooted with Magisk and Xposed (had same problem on 8.0 too). Stock Messaging app 



# If you want to suggest automating, please stick to MacroDroid (don't want to add another automation app just for this). Gravity Box doesn't help. If your solution involves an alternate messaging app, it should be good at blocking spam SMS / be able to control reading of sender name(Textra already tried)
It had nothing to do with the device  settings (but OS bug )

It was a macro misbehaving and reading out for any contact rather than chosen contacts (since the device is always on vibrate wanted audio alert for text messages from chosen few).I never suspected this since a similar macro for incoming calls was working fine

Edit: Shared logs with the developer who confirmed that it is an OS bug


  My code in simple terms does a look up on the number in your contacts database and then when it matches it requests the ContactsContract.PhoneLookup.DISPLAY_NAME....your device OS has some kind of weird issue where it doesn't return a sensible name.


and hence it was getting triggered universally for any contact