Я хочу, чтобы проверить, что SMS было отправлено после того, как:андроид ява смс, как проверить на ошибки
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, smsText, sentPI, null);
Как я обнаружил, как сейчас единственный способ использовать приемник. Я прав?
Я нашел хороший пример в должности: Unable to send sms using SMSManager in Android Первый ответ показывает, как написать ресивер. Тем не менее, есть комментарии к этому ответу, во-первых, что все получатели регистрируются с каждым SMS (у меня есть), а во-вторых, как это исправить: unregisterReceiver (this); Я пытался использовать unregisterReceiver; Я изменил код в посте выше:
BroadcastReceiver r = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
unregisterReceiver(r);
.....
registerReceiver(r, new IntentFilter(SENT));
Он работает так же, как в примере. Теперь мне нужно добавить unregisterReceiver (r). Я попытался поместить его после smsManager.sendTextMessage - приемник вообще не вызван. Я попытался включить его в onReceive - ему сказали объявить r окончательным. Так и было, теперь «r» может не быть инициированной ошибкой. Где я должен поместить unregisterReceiver, чтобы избавиться от новых и новых приемников?
Быстрое примечание, в котором метод 'onReceive',' unregisterReceiver (r); 'может быть' unregisterReceiver (this); 'и' r' не обязательно будет окончательным. – petey