成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發速成簡潔教程二十:短信觸發示例

移動開發 Android
Android 中BroadCast Receiver可以用來偵聽廣播事件。在使用Broadcast 之前,必須使用代碼或是在AndroidManifest.xml進行注冊。

Android 中BroadCast Receiver可以用來偵聽廣播事件。在使用Broadcast 之前,必須使用代碼或是在AndroidManifest.xml進行注冊。

下面的例子實現使用短信來觸發AndroidGraphics2DTutorial中的示例。短信格式為:@demo:xxxx ,xxxx為 示例名稱,比如, 啟動Colors示例, 則向手機發送: @demo:Colors . 手機在收到短信后,先檢測短信格式是否符合 @demo:xxxx, 若符合,這啟動對應的示例。

在AndroidGraphics2DTutorial中添加一個自定義的Broadcast Receiver SmsMessageReceiver 用于監測接受到的短信:

  1. public class SmsMessageReceiver extends BroadcastReceiver {       
  2.        private static final String queryString="@demo:"
  3.         @Override 
  4.         public void onReceive(Context context, Intent intent) { 
  5.             Bundle extras = intent.getExtras(); 
  6.             if (extras == null
  7.                 return;   
  8.             Object[] pdus = (Object[]) extras.get("pdus");    
  9.             for (int i = 0; i < pdus.length; i++) { 
  10.                 SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]); 
  11.                 String fromAddress = message.getOriginatingAddress(); 
  12.                 String fromDisplayName = fromAddress; 
  13.                 String msg=message.getMessageBody(); 
  14.                 if(msg.startsWith(queryString)){ 
  15.                    // Trigger the main activity to fire up a dialog 
  16.               //that shows/reads the received messages 
  17.                     Intent di = new Intent(); 
  18.                          di.setClass(context, AndroidGraphics2DTutorial.class); 
  19.                     di.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
  20.                             | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
  21.                     di.putExtra(AndroidGraphics2DTutorial.SMS_FROM_ADDRESS_EXTRA, 
  22.                             fromAddress); 
  23.                 di.putExtra(AndroidGraphics2DTutorial.SMS_FROM_DISPLAY_NAME_EXTRA, 
  24.                             fromDisplayName);                di.putExtra(AndroidGraphics2DTutorial.SMS_MESSAGE_EXTRA, msg); 
  25.                     context.startActivity(di); 
  26.                 }         
  27.             } 
  28.         } 
  29.     } 

onReceive 會在Broadcast 事件發生是執行,這里檢測短信內容,如果是以@demo:開頭的,則啟動AndroidGraphics2DTutorial Main Activity。

修改AndroidMainifest.xml

  1. <receiver android:name=".SmsMessageReceiver" android:enabled="true"
  2.                 <intent-filter> 
  3.                     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
  4.                 </intent-filter> 
  5.      </receiver> 

同時添加permission ,和Java ME類似Android某些API需要指定對應的Permission才可以使用。

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

修改AndroidGraphics2DTutorial.java 來處理SMS消息:

  1. public void onCreate(Bundle savedInstanceState) { 
  2.         super.onCreate(savedInstanceState); 
  3.         Resources res = getResources(); 
  4.         String[] activity_Names = res.getStringArray(R.array.activity_name); 
  5.         String[] activity_Infos = res.getStringArray(R.array.activity_info); 
  6.         for(int i=0;i<activity_Names.length;i++){ 
  7.             ActivityInfo activityInfo=new ActivityInfo(); 
  8.             activityInfo.activityName=activity_Names[i]; 
  9.             activityInfo.activityInfo=activity_Infos[i]; 
  10.             activityInfo.iconIndex=R.drawable.icon1+i; 
  11.             activityInfos.add(activityInfo); 
  12.         }             
  13.         aa=new ActivityInfoAdapter(this,R.layout.activitylist,activityInfos); 
  14.         setListAdapter(aa); 
  15.         Bundle bundle=getIntent().getExtras(); 
  16.         if(bundle!=null){ 
  17.                   mFromAddress = bundle.getString(SMS_FROM_ADDRESS_EXTRA); 
  18.              mMessage = bundle.getString(SMS_MESSAGE_EXTRA); 
  19.              int index=mMessage.indexOf(queryString); 
  20.              if(index>=0){ 
  21.                  String demoName=mMessage.substring(index+queryString.length()); 
  22.                  Intent intent = new Intent(); 
  23.                  intent.setClassName(this, packgeName+".example." +demoName); 
  24.                  startActivity(intent);                   
  25.              }                 
  26.         } 
  27.     } 

下面來測試,如果使用設備,則給手機發送@demo:Colors .
如果使用模擬器,則可以啟動兩個模擬器:

模擬器左上角數字5554,5556為模擬器的號碼。發送@demo:Paths ,則自動觸發Paths示例,如果AndroidGraphics2DTutorial沒有運行,手機收到SMS短信后,會自動啟動應用。

責任編輯:閆佳明 來源: imobilebbs
相關推薦

2013-12-27 16:06:10

Android開發Android應用發布應用

2013-12-27 12:51:44

Android開發Android應用引路蜂

2013-12-27 13:49:22

Android開發Android應用Button

2013-12-27 15:31:26

Android開發Android應用資源Resources

2013-12-26 15:10:08

Android開發應用和框架Linux 內核

2013-12-26 15:43:07

Android開發Android應用Activities

2013-12-26 15:18:09

Android開發安裝開發環境

2013-12-27 15:11:17

Android開發訪問Internet繪制在線地圖

2013-12-27 14:05:22

Android開發Android應用Dialog

2013-12-27 14:16:43

Android開發Android應用線程

2013-12-27 13:27:05

Android開發Android應用RadioButton

2013-12-26 15:46:30

Android開發Android應用用戶界面設計

2013-12-26 16:59:12

Android開發Android應用數據綁定Data Bi

2013-12-26 16:24:13

Android開發Android應用Intents

2013-12-26 15:34:19

Android開發Android應用基本概念

2013-12-26 16:46:21

2013-12-26 17:08:36

Android開發Android應用自定義Adapter顯

2013-12-27 13:00:30

Android開發Android應用Context Men

2013-12-27 14:10:36

Android開發Android應用Transform

2013-12-27 12:42:15

Android開發Android應用引路蜂
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费黄视频网站 | 一区二区久久 | 日韩中文字幕一区二区 | 久久综合99| 欧美一区免费 | 一区二区欧美在线 | 视频一区二区国产 | 日日草天天干 | 午夜精品一区二区三区在线观看 | 亚洲激情在线观看 | 天天躁人人躁人人躁狂躁 | 欧美一区二区三区在线 | 亚洲视频免费在线观看 | 一区二区高清 | 国产精品视频999 | 国产日产欧产精品精品推荐蛮挑 | 日韩精品一区二区三区第95 | 亚洲欧美日韩在线 | 日韩一二三区视频 | 久久精品国产一区二区电影 | 麻豆久久久 | 欧美午夜视频 | 欧美一区二区三区在线免费观看 | 91精品国产综合久久精品图片 | 激情一区二区三区 | 国产在线aa| 精品国产91亚洲一区二区三区www | 国产超碰人人爽人人做人人爱 | 午夜资源| 国产精品成人一区二区三区 | 国产精品国产三级国产aⅴ中文 | 91精品国产自产在线老师啪 | 久操国产| 日韩精品一区二区三区中文字幕 | 狠狠av| 国产激情一区二区三区 | 免费一区 | 国产真实精品久久二三区 | 免费黄色片在线观看 | 麻豆va | 国产伦一区二区三区 |