android智能天氣鬧鐘應用開發經過

來源:互聯網
上載者:User

標籤:android   blog   http   使用   ar   sp   2014   問題   log   

  開發這個應用的初衷是這樣產生滴,和我一塊租房的同學每天早上都是騎單車上班,所以手機鬧鐘就會定一個剛好適合騎車的起床時間點。但是呢,有一天早上起床以後發現外面下挺大雨,肯定是不能騎車去上班了,於是就只好坐公交了,可是起床的時間剛好夠騎車不夠坐公交呀,雨天又不好打車~~於是就華麗麗的遲到了~~

  剛好我最近在自學android開發,然後就想到了做這麼一個鬧鐘應用,可以根據當天天氣的情況來決定鬧鐘觸發的時間,如果下雨或者下雪的話就讓它提前一個時間點,比如半個小時觸發,這樣的話騎車的同學就省了不少心,媽媽再也不用擔心我因為起床晚而上班或者上學遲到了~~

  話不多說,首先看成果物(程式員做的介面,大家懂得。。)

  

  

  下面說一下開發過程中的整體技術思路和遇到的問題:

  1.android鬧鐘的設定

    android鬧鐘的設定使用了android的AlarmManager系統服務,根據使用者輸入的鬧鐘時間來進行系統鬧鐘的觸發設定就好了。因為使用者的輸入比較簡單,所以同時將使用者設定的鬧鐘時間直接儲存在xml中,方便隨時擷取。

    定義自己的鬧鐘事件廣播接收類receiver,當鬧鐘被觸發使用該類進行監聽。

 

  2.城市定位以及天氣情況擷取

    定位和擷取天氣情報,本來是打算分兩步進行,自己編寫城市定位的代碼,然後通過擷取到的城市名再去某一個api擷取該城市的天氣情況,但是網上找了半天沒找到一個合適的擷取天氣情況的介面,真是一個難過的結果。後來有一天發現高德地圖的api介面有天氣介面,可以一步到位地擷取城市以及天氣情況,所以這個問題就輕鬆解決了。。。

 

  3.特殊天氣鬧鐘提前觸發設定

    至此就到了本應用最主要了邏輯處理處了,如何讓它根據鬧鈴當日的天氣情況自動判斷鬧鐘觸發的時間呢??

    我的思路是這樣的,在使用者設定鬧鐘時間的時候正常情況下會給系統的AlarmManager服務註冊一個使用者設定的時間點的鬧鐘的迴圈觸發服務,但是我將它修改為設定一個提前於使用者設定的時間半小時(假定使用者想提前半小時)的迴圈觸發服務。

    例如使用者設定了8:00的鬧鐘,我就將它改為7:30,當7:30的時候我的廣播接收類receiver收到了系統發的鬧鐘觸發事件,然後2中提到的介面擷取當前即時天氣情況,如果是下雨下雪等特殊天氣就讓鬧鐘在此刻觸發,鬧鈴立馬響起。如果是正常天氣就再向系統註冊一個8:00的單次鬧鐘事件,receiver在8:00接受到該事件以後不進行天氣判斷而是直接觸發鬧鈴。

 

  至此,整個應用的核心功能就基本實現了。本人android菜鳥,思路和技術都沒什麼技術含量,所以代碼就不上了,如果有想的不對的地方還請多多指點。

android智能天氣鬧鐘應用開發經過

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.