Определить, какая SIM-карта получила сообщение

Я пытаюсь определить, какая SIM-карта получила входящее сообщение в BroadcastReceiver на телефоне с поддержкой двух или трех SIM-карт.

Примечание. Все SIM-карты имеют одинаковый SMSC.


person Mohammad Lotfi    schedule 27.02.2015    source источник
comment
Устали искать ссылки и Stackoverflow.   -  person Mohammad Lotfi    schedule 27.02.2015
comment
см. это может быть то, что вам нужно   -  person Elfnan Sherif    schedule 17.05.2021


Ответы (2)


Кажется, что информация может быть в Intent extra с ключом "simSlot".

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

Я также не смог найти никакой информации об этом в моем, по общему признанию, кратком поиске, поэтому я не уверен, насколько это универсально, или в какой версии Android это могло быть представлено. Я нашел это, сбросив все дополнения к доставленному Intent в Receiver на моем устройстве.

person Mike M.    schedule 27.02.2015
comment
У меня не работало в андроиде 10. Всегда получаю simSlot -1 при получении СМС на обеих сим-картах - person Wijay Sharma; 16.08.2020
comment
@WijaySharma Меня это не удивляет. Это должен был быть комментарий, а не ответ. Извините, что ввел вас в заблуждение. Если я получу некоторое время спустя, я проведу небольшое исследование и обновлю этот ответ. Я дам вам знать, если / когда я это сделаю. - person Mike M.; 16.08.2020

Эта работа для телефонов Lenovo с чипсетами Mediatek

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