編輯:關於Android編程
鬧鈴信息采集
鬧鈴時間,鬧鈴備注信息
鬧鈴引起系統變化的點:
1. Send Notification
2. Play Ring
鬧鈴信息結構體
ClockInfo{
String apkName;
String startTime;
String backup;
boolean isPlayingRing;
}
SendNotification
SystemUI
BaseStatusBar.java
解析ExpandedView,獲取Clock發送的Notification.因為在BaseStatusBar裡顯示Notification時,不能夠確認是否在播放鈴聲,所以isPlaying=false.將獲取的Clock information 通過廣播發送到服務端.
鬧鈴信息:{
apkName;
startTime=****;
backup=****;
isPlayingRing=false;
}
Play Ring
MediaPlayer
MediaPlayer.java
當產生Clock時,會調用MediaPlayer.start()方法播放鈴聲。在調用start()方法裡,創建ClockInfo,然後通過廣播發送到服務端。
鬧鈴信息{
apkName=**;
startTime=****;
backup=Empty;
isPlayingRing=true;
}
為什麼需要在兩個地方創建ClockInfo?
1.正點鬧鐘可以設置不發送Notification。這時只能獲取到它調用MediaPlayer.start()方法。
2.調用MediaPlayer.start()方法不能獲取到Notification的內容。為了盡量獲取到Clock的backUp信息,需要同時在StatusBar裡獲取ClockInfo。
3.正點鬧鐘和即時提醒會在StatusBar中顯示下一個鬧鐘,此時並不是鬧鈴事件。所以需要同時根據MediaPlayer.start()產生的鬧鈴信息判斷。
存儲結果
服務端接收到收集Clock information的廣播後,解析裡面的clock information,並存儲到Local database.
Media start
apkName =**, startTime=***,backup= ,isPlayingRing=true;
StatusBar
apkName=**, startTime=***, backup=****,isPlayingRing=false;
當存儲StatusBar發送的ClockInfo時,會判斷:
一定時間間隔內是否存在 apkName=** and backup=Empty andisPlayingRing=true;
如果存在
更新已經存在的backup內容。
當存儲Media發送的ClockInfo時,會判斷:
一定時間間隔內是否存在apkName=** and backup !=Empty andisPlayingRing=false;
如果存在設置isPlaying=true;
最近一個android小程序需要登錄功能,我簡單實現了一下。現在記錄下來也當做個筆記,同時也希望可以相互學習。所以,如果我的代碼有問題,還各位請提出來。多謝了! 下面
一,效果圖。二,工程圖。 三,代碼。RootViewController.h#import <UIKit/UIKit.h>@interface Ro
Android中的倒計時的功能(也可以直接使用CountDownTimer這個類直接實現,相關此Demo可查看我的博客),參考了網上寫的很好的一個倒計時Demo: 下
今天看了pro android 3中menu這一章,對Android的整個menu體系有了進一步的了解,故整理下筆記與大家分享。PS:強烈推薦《Pro Android 3