我在我的应用程序中读取广播短信。如何通过我的应用程序阅读后删除广播消息?
我想先检查该消息中是否存在特定模式。如果不存在,那么我想删除该短信而不将其保存在收件箱文件夹中。
我能够在我的应用程序中成功读取短信,但无法删除它。代码片段如下。
public class SmsListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(intent.getAction())) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
for (SmsMessage smsMessage : Telephony.Sms.Intents.getMessagesFromIntent(intent)) {
String messageBody = smsMessage.getMessageBody();
String pattern="$Ntmds";
if(messageBody.indexOf(pattern)!=-1){
Log.d("sdsd,", String.valueOf(messageBody));
}else {
//i want to delete here
// abortBroadcast(); <-- this is nnot working for me
Log.d("vb,", String.valueOf(messageBody));
}
}
}
}
}
}
AndroidManifest.xml中
<receiver android:name=".SmsListener">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
我尝试了很多,但没有得到任何成功。我用abortBroadcast()但它也不适合我。请帮帮我。
您正在使用哪个android版本? –
我用了6.0(棉花糖)。 –
你不应该使用普通的短信作为基于此端口的短信,所以它从来没有在一般的收件箱中看到。 –