歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之垃圾短信攔截功能實現

Android之垃圾短信攔截功能實現

日期:2017/3/1 10:08:40   编辑:Linux編程

Android之簡單的短信攔截器

當我們需要把一些騷擾信息屏蔽掉時,這時,我們要設置一個短信攔截器:短信攔截器是通過,當我們在系統收到短信前,對短信進行攔截,當系統要收短信時這是會收到一個廣播,所以,我們只需對此廣播進行攔截。

如何攔截此廣播呢?

由於系統上的廣播接收者優先級一般是0,所以,我們只需要設置優先級大於0就可以在系統收到短信前對短信進行過濾。

具體代碼如下:

在清單文件中加入收短信的權限:<uses-permission android:name="android.permission.RECEIVE_SMS" />
//這裡我們只屏蔽12345這個手機號發送過來的短信
public class SmsBlacklist extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");// 獲取到短信數據Object[], 其中每個都是一段短信
for (Object pdu : pdus) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu);// 每一段短信是一個字節數組, 構建成一個SmsMessage對象
Date date = new Date(sms.getTimestampMillis());// 獲取發送時間
String address = sms.getOriginatingAddress();// 獲取號碼
String body = sms.getMessageBody();// 獲取消息內容
System.out.println(date + " " + address + " " + body);

if (address.equals("12345"))
abortBroadcast();// 中斷傳輸
}
}

}

Copyright © Linux教程網 All Rights Reserved