Android 系统提供了短信过滤器的 API,可以实现过滤垃圾短信的功能,具体实现步骤如下:
public class SmsReceiver extends BroadcastReceiver {
private static final String SPAM_KEYWORD = "【垃圾短信关键字】";
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (Object pdu : pdus) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdu);
String content = message.getMessageBody();
if (isSpam(content)) {
abortBroadcast(); // 拦截或删除垃圾短信
} else {
// 处理正常短信
}
}
}
}
}
/**
* 判断是否为垃圾短信
*/
private boolean isSpam(String content) {
// 使用正则表达式匹配是否包含垃圾短信关键字
Pattern pattern = Pattern.compile(SPAM_KEYWORD, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(content);
return matcher.find();
}
}