运营商可以向电话用户发送服务信息消息。它显示为通知窗口。例如,我的接线员会在每次通话后发送用完的和剩余的钱。它为此使用这些服务信息。

有没有办法处理该消息?

最佳答案

如果是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());
                }
            }
}

08-28 00:48