Всем привет!
В приложении нужно реализовать отправку СМС через выбранную сим карту, но у меня никак не получается
Пробовал в sendTextMessage параметром scAddress писать isms, isms2, номер телефона симки, и тд, не получалось.
Потом нашёл такой метод как SmsManager.getSmsManagerForSubscriptionId, в него передаю SubscriptionId сим карты, с первой сим карты отправляет, а вот со второй нет.
Симки получаю вот так:
List<SubscriptionInfo> subscription = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
for (int i = 0; i < subscription.size(); i++) {
SubscriptionInfo info = subscription.get(i);
Sim sim = new Sim();
sim.subscription_id = info.getSubscriptionId();
sim.index = info.getSimSlotIndex();
sim.name = info.getCarrierName().toString();
sim.phone = info.getNumber();
sims.add(sim);
}
И пытаюсь отправить смс через этот код
private void sendSMS(Integer sim_id, String number, String sim, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
{
try {
SmsManager sms = SmsManager.getSmsManagerForSubscriptionId(sim_id);
sms.sendTextMessage(number, sim, text, sentIntent, deliveryIntent);
} catch (Exception e) {
log(e.getMessage());
}
}
в sim_id передаю subscription_id, sim = null.
Если ввести subscription_id первой сим карты, то всё работает, а вот если второй, то даже sentIntent и deliveryIntent не выполняются
Что делать?
В приложении нужно реализовать отправку СМС через выбранную сим карту, но у меня никак не получается
Пробовал в sendTextMessage параметром scAddress писать isms, isms2, номер телефона симки, и тд, не получалось.
Потом нашёл такой метод как SmsManager.getSmsManagerForSubscriptionId, в него передаю SubscriptionId сим карты, с первой сим карты отправляет, а вот со второй нет.
Симки получаю вот так:
List<SubscriptionInfo> subscription = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
for (int i = 0; i < subscription.size(); i++) {
SubscriptionInfo info = subscription.get(i);
Sim sim = new Sim();
sim.subscription_id = info.getSubscriptionId();
sim.index = info.getSimSlotIndex();
sim.name = info.getCarrierName().toString();
sim.phone = info.getNumber();
sims.add(sim);
}
И пытаюсь отправить смс через этот код
private void sendSMS(Integer sim_id, String number, String sim, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
{
try {
SmsManager sms = SmsManager.getSmsManagerForSubscriptionId(sim_id);
sms.sendTextMessage(number, sim, text, sentIntent, deliveryIntent);
} catch (Exception e) {
log(e.getMessage());
}
}
в sim_id передаю subscription_id, sim = null.
Если ввести subscription_id первой сим карты, то всё работает, а вот если второй, то даже sentIntent и deliveryIntent не выполняются
Что делать?