Как обращаться с сервисной информацией в Android - PullRequest
2 голосов
/ 22 декабря 2011

Оператор может отправить сообщение с информацией об услуге пользователю телефона.Появляется как окно уведомлений.Мой оператор например отправляет потраченные и оставленные деньги после каждого звонка.Для этого он использует эту Сервисную информацию.

Есть ли способ обработать это сообщение?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

Я думаю, что аналогичным образом работает парсинг USSD-сервисов.Загляните в класс, который разбирает USSD-ответ: http://codepaste.ru/7545/. Надеюсь, это вам поможет.Удачи!

0 голосов
/ 22 декабря 2011

Если это SMS (случай, который я вижу с операторами вокруг меня).

Просто добавьте фильтр намерений к вашему манифесту:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.example">
    <uses-permission id="android.permission.RECEIVE_SMS" />
    <application>
        <receiver class="SMSApp">
            <intent-filter>
                <action android:value="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
    </application>
</manifest> 

и просто расширяет android.content.IntentReceiverи реализовать метод onIntentReceived следующим образом:

public void onReceiveIntent(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
                for (int i = 0; i &lt; messages.length; i++) {
                    SmsMessage message = messages[i];
                    System.out.println("Received SMS from: "+message.getDisplayOriginatingAddress());      
                    System.out.println(message.getDisplayMessageBody());
                }
            }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...