2017年4月20日 星期四

Android鬧鐘測試 - 1/3 簡介

關於Android鬧鐘的範例網絡上很容易找到大量資料,於是我根據這些資料來作一個來測試,本以為不用花很多時間就能完成,可是遇到一個很重要的問題,花了很久都找不到完美的解決方法,現在把這問題及暫時的解決方法記錄下來,希望以後能找到解決方法。
這個問題就是當我設定,更改或刪除鬧鐘後,除了等到所設定的時間外,怎樣可以確定鬧鐘真的成功設定了,系統好像不能列出所有已註冊的鬧鐘吧。
一個鬧鐘應用基本要做以下幾件事:

  1. 建立一個接收器,當所設定的時間到了就響鬧鈴。
  2. 向系統建立Alarm,當到了指定時間就通知接收器。
  3. 向系統更改或取消已設定的Alarm。
  4. 當系統重啟時,所有已設定的Alarm都會自動清除,需要在重啟後再建立Alarm。
步驟1及4沒有什麼特別,這裡只記錄代碼,不作進一步測試了。

本文的重點是步驟2及3,向系統建立,更改及取消Alarm,基本代碼如下
在進行測試前,要先找出列出所建立Alarm的方法才能繼續下去,經過搜索一段時間後,看來要列出Alarm的最好方法是便用ADB shell,在platform-tools目錄中輸入以下指令後,所有Alarm會存在dump.txt
......platform-tools>adb shell dumpsys alarm > dump.txt
但是這個辦法很麻煩,而且可讀性很低,再查看AlarmManager的文件時發現了自API level 21開始新增了一個getNextAlarmClock的方法,看來這就是我們所需的。只要設定Alarm時使用setAlarmClock而不用傳統的set,這方法就能找到下一個會執行的Alarm

沒有留言:

張貼留言