如果你想監聽自己或者別人接收到的簡訊,設定黑名單等功能,那麼就需要以下功能監聽簡訊,並進行提示或者響應的處理:
當系統收到簡訊時,會發出一個廣播Intent,Intent的action名稱為android.provider.Telephony.SMS_RECEIVED,該Intent存放了系統接收到的簡訊內容,我們使用名稱「pdus」即可從Intent中獲取到簡訊內容:
public class IncomingSMSReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED = “android.provider.Telephony.SMS_RECEIVED”;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
在AndroidManifest.xml檔案中的<application>節點裏對接收到簡訊的廣播Intent進行訂閱:
<receiver android:name=”.IncomingSMSReceiver”>
</receiver>
在AndroidManifest.xml檔案中新增以下許可權:
<uses-permission android:name=”android.permission.RECEIVE_SMS”/><!– 接收簡訊許可權 –>
<uses-permission android:name=”android.permission.SEND_SMS”/><!– 傳送簡訊許可權 –>
如果想在播出的電話加上特殊提示或者預設加上區號,12593優惠號等,那麼就需要監聽外撥的電話,並進行處理:
向外撥打電話時系統會發出一個有序廣播,雖然該廣播最終會被拔號器裡的廣播接收者所接收並實現電話拔打,但我們可以在廣播傳遞給拔號廣播接收者之前先得到該廣播,然後清除傳遞給拔號廣播接收者的電話號碼,在拔號廣播接收者接收到該廣播時,由於電話號碼為null,因此取消電話拔打。
public class OutgoingCallReceiver extends BroadcastReceiver {
}
接收外拔電話廣播Intent,在AndroidManifest.xml檔案中的<application>節點裏訂閱此Intent:
<receiver android:name=”.OutgoingCallReceiver”>
</receiver>
並且要進行許可權宣告:
<uses-permission android:name=”android.permission.PROCESS_OUTGOING_CALLS”/>
本文來自新浪部落格