時間都去哪兒了?開源一個統計iPhone上App運行時間和打開次數的小工具【iOS8已失效】

         現在,你們天天都有大量時間花在手機上,可是,你們有沒有想過本身的時間都花在哪些App上了呢?相信不少人都有這樣的需求,不過iOS系統自己並不能顯示每一個App的運行時間和次數,所以,本人寫了這樣一個小工具,能夠在後臺進行監控當前使用的App,對App的打開次數和運行時間進行統計,能夠顯示今日、本週、或所有統計結果,並能按打開次數、運行時長排序。git

       程序使用的是私有API,所以請勿將本文中提到的方法用於須要發佈到AppStore的應用。不過在真機上運行代碼,並不須要越獄,只須要有開發者證書便可,所以有證書的朋友能夠部署代碼到設備上娛樂下github

       程序原理很簡單,首先是播放無聲音樂,使程序能保持後臺運行,其次啓動一個計時器,持續獲取當前前臺運行的App名稱,當前臺運行的App發生改變時,即寫一條記錄到數據庫,而後監控設備的鎖屏消息,當設備鎖屏時,暫停計時器,當設備打開鎖屏時,繼續計時器。若是設備重啓,須要從新打開一次程序,統計才能繼續進行。spring

      運行效果以下:數據庫

              

      程序的要點以下:app

(1)播放無聲音樂iphone

       使用開源代碼MMPDeepSleepPreventer工具

 

(2)獲取前臺運行App bundleId及App名稱spa

       獲取前臺運行的App Bundle Id:SBFrontmostApplicationDisplayIdentifierserver

       獲取App 名稱 :SBSCopyLocalizedApplicationNameForDisplayIdentifierblog

       獲取App圖標:SBSCopyIconImagePNGDataForDisplayIdentifier

       具體使用方法參見《iphone SprintBoard部分私有API總結》 及 代碼。

(3)監控設備鎖屏消息

       使用CFNotificationCenterAddObserver對"com.apple.springboard.lockcomplete"和"com.apple.springboard.lockstate"進行監控。根據獲得的狀態,能夠知道設備是鎖屏仍是打開非鎖屏。

   代碼下載:https://github.com/gugupluto/iOSAppTime       

相關文章
相關標籤/搜索