Android從普通發送和接收簡訊到對簡訊進行攔截

來源:互聯網
上載者:User

標籤:android   簡訊   攔截   

概述:

    說實話,關於Android中對簡訊的一些相關操作是一個比較入門的東西。那我現在還要來寫這一篇部落格的原因只是因為現在開發中有相關內容,而又想將這些東西分享給更多的人來學習,同時在以後對Android系統的簡訊進行其他學習的時候也就放在這裡做一個記錄了,於是就寫了這篇囉嗦的文章。如果你覺得這是一個不錯的東西,歡迎收藏,以便在以後更方便地查看本人在此篇文章中更新的內容。下面我就從標題中的三個方面來對Android系統中的簡訊操作進行一個簡單地學習。


簡訊的發送

由於Android中對簡訊發送方法的優良封裝,之後對傳送簡訊的開發就顯得異常的簡單了。

public static void sendMessage(Context context, String content, String phoneNumber) {        SmsManager sms = SmsManager.getDefault();        PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent(), 0);        sms.sendTextMessage(phoneNumber, null, content, pi, null);    }

別忘了還有許可權問題:

<uses-permission android:name="android.permission.SEND_SMS" />

簡訊的接收

    對於簡訊息的接收相對來說會複雜一些。而複雜的原因大家也應該比較容易理解——接收是不可控制的。也就是說我們的手機根本不知道什麼時候會有一條簡訊息過來。由於過於被動,Android的機制中就出現了一個強大到讓你佩服的東西,那就是廣播接收者。我們註冊一個廣播接收者,然後讓這個廣播接收者時時刻刻地去監聽簡訊息是否到達的這一事件。就這樣,被動觸發事件完美地解決了。下面讓我們來看看這個過程:

public void onReceive(Context context, Intent intent) {                if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {            Bundle bundle = intent.getExtras();                        Object messages[] = (Object[]) bundle.get("pdus");            SmsMessage smsMessage[] = new SmsMessage[messages.length];            for (int n = 0; n < messages.length; n++) {                smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);            }            showToast(context, "簡訊內容: " + smsMessage[0].getMessageBody());        }    }
添加許可權:

<uses-permission android:name="android.permission.RECEIVE_SMS" /><uses-permission android:name="android.permission.READ_SMS" />

以及在manifest中進行一個靜態註冊:

<receiver android:name=".broadcast.SMSReceiver" >                <action android:name="android.provider.Telephony.SMS_RECEIVED" />            </intent-filter>        </receiver>

簡訊的攔截

在能夠接收簡訊的基礎上做一個簡訊攔截倒是簡單了許多。因為能夠接收,所以我只要成為第一個接收的人,並把接收到的簡訊不再向下傳播,這就完成了簡訊息的攔截了。

提高優先權:


阻斷傳播:




Android從普通發送和接收簡訊到對簡訊進行攔截

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.