Android截圖監聽

山有木xi發表於2020-12-20

在很多的應用中都有這樣的一個暗藏的功能,就是在應用中截圖,會觸發彈窗,彈窗會詢問你是否有什麼問題或者是否想分享該截圖,這就是截圖監聽

其實截圖監聽無非是

  • 利用FileObserver監聽某個目錄中資源變化情況

  • 利用ContentObserver監聽全部資源的變化

  • 監聽截圖快捷按鍵

這三種方案

第一種方案是透過 FileObserver監聽截圖資料夾,當有新的截圖檔案產生時,呼叫設定的回撥函式執行相關操作,它的優點就是實現起來比較簡單,缺點是需要做大量的適配,因為不同的廠商出發的監聽事件名字和資料夾都不一樣

第二種方案透過 ContentObserver監聽多媒體圖片庫資源的變化。當手機上有新的圖片檔案產生時都會透過MediaProvider類向圖片資料庫插入一條記錄,以方便系統的圖片庫進行圖片查詢,可以透過ContentObserver接收圖片插入事件,並獲取插入圖片的URI

第三種方案由於廠商自定義Android系統的多樣性,再加上快捷鍵的不同以及第三方應用,監聽截圖快捷鍵這事基本不靠譜,所以自動忽略這個方案

透過讀原始碼(TakeScreenshotService 和 GlobalScreenshot )總結Android截圖系統做的事情:

儲存截圖Bitmap到本地檔案

把圖片記錄插入到ContentProvider中

傳送一個截圖相關的Notification

所以,第二種方案的情況下,是我們最容易實現的


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2743774/,如需轉載,請註明出處,否則將追究法律責任。

相關文章