Есть ли примеры службы, которая обрабатывает ACTION_RESPONSE_VIA_MESSAGE?

Попытка сделать мое приложение приложением SMS по умолчанию (как это требуется в KitKat). инструкции симпатичны ясно, вместо точки:

Включите в службу фильтр намерений для ACTION_RESPONSE_VIA_MESSAGE ("android.intent.action.RESPOND_VIA_MESSAGE") со схемами, sms:, smsto:, mms: и mmsto:. Эта служба также должна требовать разрешения SEND_RESPOND_VIA_MESSAGE.

Не могу понять, как написать этот Сервис? Я пытался следить за источниками Android, но это все еще неясно.

Кто-нибудь может указать мне на хороший пример, как это работает?


person Barmaley    schedule 24.03.2014    source источник


Ответы (1)


Пример приложения sms, которое регистрируется для этого намерения:

protected void onHandleIntent(Intent intent) {
        if (intent != null) {
            if (TelephonyManager.ACTION_RESPOND_VIA_MESSAGE.equals(intent.getAction())) {
                String num = intent.getDataString();
                num = num.replace("smsto:", "").replace("sms:", "");
                String msg = intent.getStringExtra(Intent.EXTRA_TEXT);
                // send the data to via intent
                Intent intentService = new Intent(this, SomeClass.class);
                startService(intentService);
            }
        }
    }

отправка сообщения через SmsManeger - smsManager.sendTextMessage(address, null, msg, piSent, piDelivered);

person Tomer Mor    schedule 24.03.2014
comment
Хммм... Что такое SomeClass.java Service? Не могу понять как это работает... - person Barmaley; 24.03.2014
comment
в моем случае SomeClass отправляет это сообщение через SmsManger.sendMessage - person Tomer Mor; 24.03.2014
comment
посмотрите в моем коде, посмотрите, как извлечь адрес и сообщение из намерения - person Tomer Mor; 24.03.2014
comment
@TomerMor: Почему служба запускает другую службу? - person CommonsWare; 24.03.2014
comment
Все операции по отправке смс выполняются из одной точки входа, я не хочу разрешать каждому классу отправлять смс - person Tomer Mor; 24.03.2014