欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android項(xiàng)目實(shí)現(xiàn)短信的發(fā)送、接收和對(duì)短信進(jìn)行攔截

 更新時(shí)間:2016年10月24日 09:46:29   作者:Q-WHai  
本篇文章主要介紹了Android項(xiàng)目實(shí)現(xiàn)短信的發(fā)送、接收和對(duì)短信進(jìn)行攔截,這是學(xué)習(xí)Android比較入門的東西,有需要的可以了解一下。

說實(shí)話,關(guān)于Android中對(duì)短信的一些相關(guān)操作是一個(gè)比較入門的東西。那我現(xiàn)在還要來寫這一篇博客的原因只是因?yàn)楝F(xiàn)在開發(fā)中有相關(guān)內(nèi)容,而又想將這些東西分享給更多的人來學(xué)習(xí),同時(shí)在以后對(duì)Android系統(tǒng)的短信進(jìn)行其他學(xué)習(xí)的時(shí)候也就放在這里做一個(gè)記錄了,于是就寫了這篇啰嗦的文章。如果你覺得這是一個(gè)不錯(cuò)的東西,歡迎收藏,以便在以后更方便地查看本人在此篇文章中更新的內(nèi)容。下面我就從標(biāo)題中的三個(gè)方面來對(duì)Android系統(tǒng)中的短信操作進(jìn)行一個(gè)簡(jiǎn)單地學(xué)習(xí)。

短信的發(fā)送

由于Android中對(duì)短信發(fā)送方法的優(yōu)良封裝,之后對(duì)發(fā)送短信的開發(fā)就顯得異常的簡(jiǎn)單了。

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); 
  } 

 別忘了還有權(quán)限問題: 

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

短信的接收

對(duì)于短信息的接收相對(duì)來說會(huì)復(fù)雜一些。而復(fù)雜的原因大家也應(yīng)該比較容易理解——接收是不可控制的。也就是說我們的手機(jī)根本不知道什么時(shí)候會(huì)有一條短信息過來。由于過于被動(dòng),Android的機(jī)制中就出現(xiàn)了一個(gè)強(qiáng)大到讓你佩服的東西,那就是廣播接收者。我們注冊(cè)一個(gè)廣播接收者,然后讓這個(gè)廣播接收者時(shí)時(shí)刻刻地去監(jiān)聽短信息是否到達(dá)的這一事件。就這樣,被動(dòng)觸發(fā)事件完美地解決了。下面讓我們來看看這個(gè)過程:

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, "短信內(nèi)容: " + smsMessage[0].getMessageBody()); 
    } 
  } 

添加權(quán)限:

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

以及在manifest中進(jìn)行一個(gè)靜態(tài)注冊(cè):

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

短信的攔截

在能夠接收短信的基礎(chǔ)上做一個(gè)短信攔截倒是簡(jiǎn)單了許多。因?yàn)槟軌蚪邮眨晕抑灰蔀榈谝粋€(gè)接收的人,并把接收到的短信不再向下傳播,這就完成了短信息的攔截了。

提高優(yōu)先權(quán):

阻斷傳播:

短信的刪除

以下是短信相關(guān)的協(xié)議

content://sms/inbox    收件箱
content://sms/sent    已發(fā)送
content://sms/draft    草稿
content://sms/outbox    發(fā)件箱
content://sms/failed    發(fā)送失敗
content://sms/queued    待發(fā)送列表

就拿收件箱為例實(shí)現(xiàn)短信的刪除代碼如下:

實(shí)現(xiàn)刪除短信中包含某一字段的短信:

public void deleteSMS(String smscontent) { 
    ContentResolver CR = getContentResolver(); 
    try { 
      // 準(zhǔn)備系統(tǒng)短信收信箱的uri地址 
      Uri uri = Uri.parse("content://sms/inbox"); 
       
      // 查詢收信箱里所有的短信 
      Cursor cursor = CR.query(uri, new String[] { "_id", "address", "person", "body", "date", "type" }, null, null, null); 
      int count = cursor.getCount(); 
      if (count > 0) { 
        while (cursor.moveToNext()) { 
          String body = cursor.getString(cursor.getColumnIndex("body"));// 獲取信息內(nèi)容 
          if (body.contains(smscontent)) { 
            int id = cursor.getInt(cursor.getColumnIndex("_id")); 
            CR.delete(Uri.parse("content://sms"), "_id=" + id, null); 
          } 
        } 
      } 
 
    } catch (Exception e) { 
      Log.v("e", e.getMessage()); 
    } 
  } 

根據(jù)最新的短信實(shí)現(xiàn)刪除信息(刪除的對(duì)象是聯(lián)系人而非短信)

public void deleteSMS() { 
    ContentResolver CR = getContentResolver(); 
    // 查詢收信箱里所有的短信 
    Cursor cursor = CR.query(Uri.parse("content://sms/inbox"), new String[] { "_id", "thread_id" }, null, null, null); 
    if (cursor != null) { 
      cursor.moveToFirst(); 
      int a = cursor.getCount(); 
      int b = cursor.getColumnCount(); 
      long threadId = cursor.getLong(1); 
      CR.delete(Uri.parse("content://sms/conversations/" + threadId), null, null); 
    } 
  } 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論