运营商可以向电话用户发送服务信息消息。它显示为通知窗口。例如,我的接线员会在每次通话后发送用完的和剩余的钱。它为此使用这些服务信息。
有没有办法处理该消息?
最佳答案
如果是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 < messages.length; i++) {
SmsMessage message = messages[i];
System.out.println("Received SMS from: "+message.getDisplayOriginatingAddress());
System.out.println(message.getDisplayMessageBody());
}
}
}