Форум программистов, компьютерный форум CyberForum.ru

Обратная связь при отправке СМС. уведомление об успешной отправке и доставке - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Динамический создавать контролы - элементы http://www.cyberforum.ru/android-dev/thread1176847.html
Ребята есть такой код для создании таблицы: void tableCreate(String ab, String bb,String gg, String jj) { // for (int i = 1; i < 30; i++) { TableRow tbrow = new TableRow(this); TextView tv1 = new TextView(this); // String s1 = Integer.toString(i); // String s2 = Integer.toString(2); // String s3 = s1 + s2;
Программирование Android Использование /n Это должно работать ? Хочу чтобы из DateTime (12/05/2014 13:21:45) преобразовать в такой вид 12/05/2014 13:21:45 и вывести в TextView public String adrestoN(String addressline){ http://www.cyberforum.ru/android-dev/thread1176791.html
Программирование Android Разница между index и id в мультитачах
Добрый день, форумчане! Волнует следующий вопрос - в чем разница между индексом и айдишником в андроидском мультитаче?.. В гугле ничего толкового не нашла. Заранее спасибо за ответы!
Управление курсором в EditTextPreference Программирование Android
как сделать так чтобы в EditTextPreference можно было управлять позицией курсора программно(можете написать небольшой фрагмент смещения курсора на 2 позиции при помощи функций) ?Какой есть обработчик событий EditTextPreference ? Как программно проверять вводимые символы и ненужные удалять из поля ввода, так же перемещать курсор обратно в исходную позицию? Добавлено через 38 минут как сделать...
Программирование Android Число с типом float http://www.cyberforum.ru/android-dev/thread1176645.html
Доброго дня всем, у меня такой вопрос если функция чтоб уменьшить количество цифр после запятой
Программирование Android Расположение блока с AdMob Как заставить баннер AdMob быть всегда сверху при прокрутке страницы в приложении? Нужно применять разметку или есть свойство блока? Заранее спасибо! подробнее

Показать сообщение отдельно
Igor-vrn
7 / 7 / 2
Регистрация: 14.12.2013
Сообщений: 93

Обратная связь при отправке СМС. уведомление об успешной отправке и доставке - Программирование Android

15.05.2014, 18:37. Просмотров 670. Ответов 0
Метки (Все метки)

Приложение отправляет СМС, при этом нужно зарегистрировать Activity как приемник событий об отправке и доставке СМС.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
private BroadcastReceiver sent = null; // широковещательный приемник на отправку
private BroadcastReceiver delivered = null; // отчет о доставке
    
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
IntentFilter in_sent = new IntentFilter("SMS_SENT");
        sent = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                switch(getResultCode()) {
                case Activity.RESULT_OK:
                    Toast.makeText(context, "Сообщение отправлено", Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(context, "Сбой при отправке", Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(context, "Ошибка. Нет сети", Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_RADIO_OFF:
                    Toast.makeText(context, "Ошибка. Радиомодуль выключен", Toast.LENGTH_SHORT).show();
                    break;  
                }
                Toast.makeText(context, "Отправка", Toast.LENGTH_SHORT).show();
                isSending = false;
                //ChangeStatus();
            }
            
        };
        this.registerReceiver(sent, in_sent);
        
        IntentFilter in_delivered = new IntentFilter("SMS_DELIVERED");
        delivered = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                switch(getResultCode()) {
                case Activity.RESULT_OK:
                    Toast.makeText(context, "Доставлено", Toast.LENGTH_SHORT).show();
                    break;
                case Activity.RESULT_CANCELED:
                    Toast.makeText(context, "Не доставлено", Toast.LENGTH_SHORT).show();
                    break;
                }
            }
        };
        this.registerReceiver(delivered, in_delivered);
        
        
    }
Не сказать, что я хорошо разобрался с этим механизмом. Скорее позаимствовал часть кода и разобрался с сутью. Собственно, приложение отправляет СМС, но уведомления эти не вызывает. Проверял на устройстве - СМС доходит до абонента. Почему же уведомления об отправке не приходят? Где ошибка?

Если можно, пару комментариев на счет: как понимать BroadcastReceiver и IntentFilter. На английском читал о них, но особо не понял ничего

Добавлено через 3 часа 23 минуты
Решение нашел. Не разобрался в этой теме сначала. Вся проблема в PendingIntent. Пару объектов для отправки и доставки нужно также создать и зарегистрировать. Тему можно закрывать
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru