Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android獲取第三方鬧鐘的鬧鈴信息

Android獲取第三方鬧鐘的鬧鈴信息

編輯:關於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;

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved