本篇文章為大家展示了Android開發(fā)中短信觸發(fā)的示例分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
Android 中BroadCast Receiver可以用來(lái)偵聽廣播事件。在使用Broadcast 之前,必須使用代碼或是在AndroidManifest.xml進(jìn)行注冊(cè)。
下面的例子實(shí)現(xiàn)使用短信來(lái)觸發(fā)AndroidGraphics2DTutorial中的示例。短信格式為:@demo:xxxx ,xxxx為 示例名稱,比如, 啟動(dòng)Colors示例, 則向手機(jī)發(fā)送: @demo:Colors . 手機(jī)在收到短信后,先檢測(cè)短信格式是否符合 @demo:xxxx, 若符合,這啟動(dòng)對(duì)應(yīng)的示例。
在AndroidGraphics2DTutorial中添加一個(gè)自定義的Broadcast Receiver SmsMessageReceiver 用于監(jiān)測(cè)接受到的短信:
public class SmsMessageReceiver extends BroadcastReceiver { private static final String queryString="@demo:"; @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); if (extras == null) return; Object[] pdus = (Object[]) extras.get("pdus"); for (int i = 0; i < pdus.length; i++) { SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]); String fromAddress = message.getOriginatingAddress(); String fromDisplayName = fromAddress; String msg=message.getMessageBody(); if(msg.startsWith(queryString)){ // Trigger the main activity to fire up a dialog //that shows/reads the received messages Intent di = new Intent(); di.setClass(context, AndroidGraphics2DTutorial.class); di.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); di.putExtra(AndroidGraphics2DTutorial.SMS_FROM_ADDRESS_EXTRA, fromAddress); di.putExtra(AndroidGraphics2DTutorial.SMS_FROM_DISPLAY_NAME_EXTRA, fromDisplayName); di.putExtra(AndroidGraphics2DTutorial.SMS_MESSAGE_EXTRA, msg); context.startActivity(di); } } } }
onReceive 會(huì)在Broadcast 事件發(fā)生是執(zhí)行,這里檢測(cè)短信內(nèi)容,如果是以@demo:開頭的,則啟動(dòng)AndroidGraphics2DTutorial Main Activity。
修改AndroidMainifest.xml
<receiver android:name=".SmsMessageReceiver" android:enabled="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
同時(shí)添加permission ,和Java ME類似Android某些API需要指定對(duì)應(yīng)的Permission才可以使用。
<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" />
修改AndroidGraphics2DTutorial.java 來(lái)處理SMS消息:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Resources res = getResources(); String[] activity_Names = res.getStringArray(R.array.activity_name); String[] activity_Infos = res.getStringArray(R.array.activity_info); for(int i=0;i<activity_Names.length;i++){ ActivityInfo activityInfo=new ActivityInfo(); activityInfo.activityName=activity_Names[i]; activityInfo.activityInfo=activity_Infos[i]; activityInfo.iconIndex=R.drawable.icon1+i; activityInfos.add(activityInfo); } aa=new ActivityInfoAdapter(this,R.layout.activitylist,activityInfos); setListAdapter(aa); Bundle bundle=getIntent().getExtras(); if(bundle!=null){ mFromAddress = bundle.getString(SMS_FROM_ADDRESS_EXTRA); mMessage = bundle.getString(SMS_MESSAGE_EXTRA); int index=mMessage.indexOf(queryString); if(index>=0){ String demoName=mMessage.substring(index+queryString.length()); Intent intent = new Intent(); intent.setClassName(this, packgeName+".example." +demoName); startActivity(intent); } } }
下面來(lái)測(cè)試,如果使用設(shè)備,則給手機(jī)發(fā)送@demo:Colors .
如果使用模擬器,則可以啟動(dòng)兩個(gè)模擬器:
模擬器左上角數(shù)字5554,5556為模擬器的號(hào)碼。發(fā)送@demo:Paths ,則自動(dòng)觸發(fā)Paths示例,如果AndroidGraphics2DTutorial沒(méi)有運(yùn)行,手機(jī)收到SMS短信后,會(huì)自動(dòng)啟動(dòng)應(yīng)用。
上述內(nèi)容就是Android開發(fā)中短信觸發(fā)的示例分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:Android開發(fā)中短信觸發(fā)的示例分析
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article12/jeisgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、用戶體驗(yàn)、網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)