Android之簡訊廣播接收內容

來源:互聯網
上載者:User

以下是簡訊廣播接收內容步驟:

1. 常見一個接收類,此類繼承 BroadcastReceiver ,需要建立一個action;

2.  需要在AndroidManifest中註冊這個接收類(關鍵字receiver)並為action綁定,最後註冊簡訊接收許可權

     <receiver android:name="EX06_01_SMSreceiver">        //繼承BroadcastReceiver 的類名

 <!-- 設定要捕捉的訊息名稱為provider中Telephony.SMS_RECEIVED -->  <intent-filter>     <action       android:name="android.provider.Telephony.SMS_RECEIVED" /> //在BroadcastReceiver 建立的action </intent-filter>          </receiver>           </application>

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

 

3.  在繼承BroadcastReceiver 的類中,複寫的onReceive方法的操作

 /* 判斷傳來的Intent中的Action類型*/

    if (intent.getAction().equals(mACTION))           {       /*建立字串變數sb*/     

StringBuilder sb = new StringBuilder();      

/*接收由Intent傳來的資料*/     

Bundle bundle = intent.getExtras();      

/*判斷Intent有無資料*/     

if (bundle != null)      

{        

/* pdus為 android內建簡訊參數 identifier         

* 通過bundle.get("")返回一包含pdus對象ン*/       

Object[] myOBJpdus = (Object[]) bundle.get("pdus");        

/*構建簡訊對象array,並根據收到的對象長度來定義array的大小*/       

SmsMessage[] messages = new SmsMessage[myOBJpdus.length];         

for (int i = 0; i<myOBJpdus.length; i++)         {           

messages[i] = SmsMessage.createFromPdu ((byte[]) myOBJpdus[i]);          }        

/* 把傳來的簡訊合并定義在stringbuffer中 */         

for (SmsMessage currentMessage : messages)         {           

sb.append("接收到來自:\n");           

/* 發送人電話號碼 */          

sb.append(currentMessage.getDisplayOriginatingAddress());           

sb.append("\n------傳來的簡訊------\n");           

/* 取得傳來的資訊*/           

sb.append(currentMessage.getDisplayMessageBody());          }        }         

/* 以(Toase)形式展示  */     

Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show();      

Intent i = new Intent(context, EX06_01.class);      

/*使指定Activity顯示在螢幕棧的最前方*/   

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      

context.startActivity(i);     }   } 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.