自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android SMS短信服務(wù)相關(guān)概念簡(jiǎn)述

移動(dòng)開(kāi)發(fā) Android
Android SMS短信服務(wù)中對(duì)于事件的接收,可以通過(guò)定義一個(gè)Intent接收器來(lái)處理。具體的操作方法將會(huì)在文中進(jìn)行詳細(xì)介紹。

經(jīng)常關(guān)注我們51CTO技術(shù)文章的朋友們應(yīng)該會(huì)記得我們?yōu)榇蠹医榻B的一篇關(guān)于Android短信發(fā)送功能實(shí)現(xiàn)的文章。大家可以通過(guò)它具體了解其中短信功能的應(yīng)用。那么今天,大家可以從這里學(xué)到的有關(guān)Android SMS短信服務(wù)的一些基本知識(shí)。#t#

許多新的應(yīng)用程序會(huì)考慮使用SMS作為數(shù)據(jù)分發(fā)平臺(tái)?,F(xiàn)實(shí)一點(diǎn)的場(chǎng)景:電影點(diǎn)播系統(tǒng)要求用戶發(fā)送一定格式的短信來(lái)進(jìn)行自動(dòng)點(diǎn)播?,F(xiàn)在越來(lái)越多的應(yīng)用采用SMS作為與用戶進(jìn)行數(shù)據(jù)交換的方式。現(xiàn)在讓我們來(lái)看一下我們?nèi)绾卧贏ndroid平臺(tái)上來(lái)構(gòu)造這種形式的應(yīng)用。

 

Android API支持開(kāi)發(fā)可以發(fā)送和接收SMS消息的應(yīng)用程序。目前我們開(kāi)發(fā)過(guò)程中使用的Android模擬器還不支持發(fā)送SMS,但它可以接收SMS?,F(xiàn)在我們來(lái)探索一下Android對(duì)SMS的支持,我們將會(huì)構(gòu)建一個(gè)小小的應(yīng)用程序來(lái)監(jiān)聽(tīng)移動(dòng)設(shè)備(或模擬器)上接收到的SMS消息,并將它顯示出來(lái)。

 

我們來(lái)定義一個(gè)Intent接收器來(lái)處理Android SMS短信服務(wù)接收事件:

 

 

  1. package com.wissen.sms.receiver;   
  2. /**   
  3. * 該類將在SMS接收的時(shí)候被調(diào)用   
  4. */   
  5. public class SMSReceiver extends BroadcastReceiver {   
  6. @Override   
  7. public void onReceive(Context context, Intent intent) {   
  8. // TODO   
  9. }   
  10. }   
  11. package com.wissen.sms.receiver;  
  12. /**  
  13. * 該類將在SMS接收的時(shí)候被調(diào)用  
  14. */  
  15. public class SMSReceiver extends BroadcastReceiver {  
  16. @Override  
  17. public void onReceive(Context context, Intent intent) {  
  18. // TODO  
  19. }  

 

我們需要對(duì)這個(gè)Intent接收器進(jìn)行配置以使它能獲取Android SMS短信服務(wù)接收事件,‘ android.provider.Telephony.SMS_RECEIVED’這個(gè)事件狀態(tài)表示了SMS已被接收。我們可以在AndroidManifest.xml中進(jìn)行如下配置:

 

 

  1. < receiver android:name=”.receiver.SMSReceiver” 
    android:enabled=”true”>   
  2. < intent-filter>   
  3. < action android:name=”android.provider.Telephony.
    SMS_RECEIVED” 
    /> 
  4. < /intent-filter>   
  5. < /receiver>   
  6. < receiver android:name=”.receiver.SMSReceiver” 
    android:enabled=”true”> 
  7. < intent-filter> 
  8. < action android:name=”android.provider.Telephony.
    SMS_RECEIVED” 
    /> 
  9. < /intent-filter> 
  10. < /receiver> 

 

為了能讓我們的應(yīng)用能接收Android SMS短信服務(wù),我們得先進(jìn)行權(quán)限的指定,可以在AndroidManifest.xml中如下配置:

 

 

  1. < uses-permission android:name=”android.
    permission.RECEIVE_SMS”
    > 
  2. < /uses-permission>   
  3. < uses-permission android:name=”android.
    permission.RECEIVE_SMS”
    > 
  4. < /uses-permission> 

 

現(xiàn)在,我們的Intent接收器就可以在Android設(shè)備接收到SMS的時(shí)候被調(diào)用了,余下的事情就是去獲取和顯示接收到的SMS消息文本了:

 

 

  1. public void onReceive(Context context, Intent intent) {   
  2. Bundle bundle = intent.getExtras();   
  3. Object messages[] = (Object[]) bundle.get(”pdus”);   
  4. SmsMessage smsMessage[] = new SmsMessage[messages.length];   
  5. for (int n = 0; n &lt; messages.length; n++) {   
  6. smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);   
  7. }   
  8. // show first message   
  9. Toast toast = Toast.makeText(context, “Received SMS: ” + 
    smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);   
  10. toast.show();   
  11. }   
  12. public void onReceive(Context context, Intent intent) {  
  13. Bundle bundle = intent.getExtras();  
  14. Object messages[] = (Object[]) bundle.get(”pdus”);  
  15. SmsMessage smsMessage[] = new SmsMessage[messages.length];  
  16. for (int n = 0; n &lt; messages.length; n++) {  
  17. smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);  
  18. }  
  19. // show first message  
  20. Toast toast = Toast.makeText(context, “Received SMS: ” + 
    smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);  
  21. toast.show();  

 

Android設(shè)備接收到的SMS是以pdu形式的(protocol description unit)。android.telephony.gsm.SmsMessage這個(gè)類可以儲(chǔ)存SMS的相關(guān)信息,我們也可以從接收到的pdu中創(chuàng)建新的SmsMessage實(shí)例,Toast界面組件可以以系統(tǒng)通知的形式來(lái)顯示接收到的SMS消息文本。

現(xiàn)在讓我們來(lái)在模擬器中運(yùn)行這個(gè)應(yīng)用程序,以及發(fā)送Android SMS短信服務(wù)消息到這個(gè)模擬器上。我們可以在eclipse的Android插件所提供的DDMS視圖(Dalvik Debug Monitor Service)中發(fā)送SMS消息到模擬器上(在’Emulator Control’面板中;另外需要指定電話電話號(hào)碼,不過(guò)可以是任意的)

責(zé)任編輯:曹凱 來(lái)源: javaeye.com
相關(guān)推薦

2024-07-18 08:36:07

2010-01-25 15:10:08

Android組件

2010-06-21 13:59:33

AMF協(xié)議

2009-09-02 15:00:25

VPN技術(shù)

2011-08-29 16:57:25

2010-01-26 18:00:07

Android屏幕元素

2010-02-26 14:39:27

WCF服務(wù)寄宿

2013-06-14 14:41:41

Android開(kāi)發(fā)pushSMS push

2022-02-02 20:21:24

短信驗(yàn)證碼登錄

2010-05-14 15:54:15

統(tǒng)一通信服務(wù)

2021-05-12 15:09:26

博睿數(shù)據(jù)

2021-09-29 13:37:11

博睿數(shù)據(jù)短信評(píng)測(cè)

2023-06-15 14:56:51

iOS 17蘋(píng)果

2010-09-16 16:06:35

PPPoE配置

2021-08-18 13:37:15

博睿數(shù)據(jù)短信監(jiān)測(cè)

2012-12-17 10:28:48

2010-01-28 16:45:44

Android單線程模

2010-06-21 14:43:31

Linux apt

2010-03-02 13:14:38

WCF MSMQ隊(duì)列
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)