在Android 作業系統中,有許多的電話相關事件(Telephony Event)會對系統發送廣播訊息,簡訊事件也不例外,當系統收到(Receiver)訊息後,會由負責處理的Intent 接手處理,若要在自己撰寫的程式中,捕捉系統發出的簡訊廣播訊息,就必須利用BroadcastReceiver 物件來聆聽簡訊服務。
在Android 作業系統中,有許多的電話相關事件(Telephony Event)會對系統發送廣播訊息,簡訊事件也不例外,當系統收到(Receiver)訊息後,會由負責處理的Intent 接手處理,若要在自己撰寫的程式中,捕捉系統發出的簡訊廣播訊息,就必須利用BroadcastReceiver 物件來聆聽簡訊服務。
本範例將運用BroadcastReceiver 的特性,來實作取得手機電池計量的程式;程式中將藉由註冊BroadcastReceiver 時設定的IntentFilter(android.content.IntentFilter),來捕捉系統發出的 Intent.ACTION_BATTERY_CHANGED 這個Action,再藉此取得手機電池的計量結果。
這個範例練習,是在程式裡預設兩個固定簡訊內容,當按下「發送」按鈕(Button)時,會去撈取手機上的通訊錄,讓User 選擇要發送的對象,一旦選好聯絡人後,便返回程式,然後執行發送簡訊的功能。
Android 的Service 物件是以分時執行緒的方式執行,這表示即便是透過Activity 裡啟動Service,也不會在相同的process 執行,而是各自屬於不同的程序。
手機最重要的功能不外乎是撥接電話、收發簡訊,PhoneStateListener 提供了聆聽這些事件的方法, 所以, 要監控手機電話狀態, 需建立PhoneStateListener 物件, 覆寫其中onCallStateChanged() 方法,透過傳入的「state」判斷來電狀態。

記憶卡在Android 手機上是可以隨時插拔的,且在插入與拔起時,會對作業系統進行ACTION broadcast。在接下來的範例練習裡,將透過StatFs 檔案系統的方法取得MicroSD 記憶卡裡的剩餘空間。
這個範例練習將在Layout 裡設計兩個按鈕,分別對「手機記憶體」以及「SD Card」做「新增」、「刪除」的功能,而稍複雜的是本範例程式(Application)具有三個Activity,除了主程式的Entry Activity 之外,其餘兩個分別處理記憶體與記憶卡。
Android API 中提供了AlarmManager(android.app.AlarmManager)類別,可以設定在指定的時間執行某些動作,本範例將運用AlarmManager 來實作兩種不同類型的鬧鐘。