編輯:Android開發教程
Android 中BroadCast Receiver可以用來偵聽廣播事件。在使用Broadcast 之前,必須使用代碼或是在AndroidManifest.xml 進行注冊。
下面的例子實現使用短信來觸發AndroidGraphics2DTutorial中的示例。短信格式為:@demo:xxxx ,xxxx為 示例名稱,比如 , 啟動Colors示例, 則向手機發送: @demo:Colors . 手機在收到短信後,先檢測短信格式是否符合 @demo:xxxx, 若符合, 這啟動對應的示例。
在AndroidGraphics2DTutorial中添加一個自定義的Broadcast Receiver SmsMessageReceiver 用於監測接受到的短信:
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 會在Broadcast 事 件發生是執行,這裡檢測短信內容,如果是以@demo:開頭的,則啟動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>
Reorder Activities 示例有四個相關的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, Reo
Eclipse自動添加import語句, 使用Ctrl + Shift + o組合, 可以自動查找java的import語句進行添加;Android默認是Alt+Ente
到目前為止,在所有的章節中,我們所看見的UI都是通過XML來實現的。之前也提及過,除了使用XML,也 可以使用代碼來實現UI界面。這個方式是很有用的,比如你的UI需要在運
周一,集團中高層例會臨時取消,真好。把上周沒搞定的小事搞定,繼續學學游戲開發這塊,打開Eclipse運行游戲小例子,報錯!![2013-12-02 10:48:37 -