6

I'm trying to detect which SIM card has received the incoming message in BroadcastReceiver on a Dual or Triple SIM support phone.

Note: All SIM cards has same SMSC.

Mohammad Lotfi
  • 369
  • 5
  • 16

2 Answers2

1

It seems that info might be in an Intent extra with the key "simSlot".

public void onReceive(Context context, Intent intent) {
    ...        
    int simSlot = intent.getIntExtra("simSlot", -1);
    ...
}

I couldn't find any info on this, either, in my admittedly brief search, so I'm not sure how universal this is, or in which Android version this might have been introduced. I found it by dumping all the extras on the delivered Intent in a Receiver on my device.

Mike M.
  • 38,532
  • 8
  • 99
  • 95
  • Didn't work for me in android 10. Always getting simSlot -1 on receiving SMS in both SIM cards – Wijay Sharma Aug 16 '20 at 18:27
  • @WijaySharma That doesn't surprise me. This should've been a comment, rather than an answer. Sorry that it mislead you. If I get some time later, I'll do some research, and update this answer. I'll let you know if/when I do. – Mike M. Aug 16 '20 at 18:35
-1

This work for Lenovo phones with Mediatek chipsets

public void onReceive(Context context, Intent intent) {
    ...        
    int simId = intent.getIntExtra("simId", -1);
    ...
}
icedman21
  • 1
  • 2