Android截圖監聽
在很多的應用中都有這樣的一個暗藏的功能,就是在應用中截圖,會觸發彈窗,彈窗會詢問你是否有什麼問題或者是否想分享該截圖,這就是截圖監聽
其實截圖監聽無非是
-
利用FileObserver監聽某個目錄中資源變化情況
-
利用ContentObserver監聽全部資源的變化
-
監聽截圖快捷按鍵
這三種方案
第一種方案是透過 FileObserver監聽截圖資料夾,當有新的截圖檔案產生時,呼叫設定的回撥函式執行相關操作,它的優點就是實現起來比較簡單,缺點是需要做大量的適配,因為不同的廠商出發的監聽事件名字和資料夾都不一樣
第二種方案透過 ContentObserver監聽多媒體圖片庫資源的變化。當手機上有新的圖片檔案產生時都會透過MediaProvider類向圖片資料庫插入一條記錄,以方便系統的圖片庫進行圖片查詢,可以透過ContentObserver接收圖片插入事件,並獲取插入圖片的URI
第三種方案由於廠商自定義Android系統的多樣性,再加上快捷鍵的不同以及第三方應用,監聽截圖快捷鍵這事基本不靠譜,所以自動忽略這個方案
透過讀原始碼(TakeScreenshotService 和 GlobalScreenshot )總結Android截圖系統做的事情:
儲存截圖Bitmap到本地檔案
把圖片記錄插入到ContentProvider中
傳送一個截圖相關的Notification
所以,第二種方案的情況下,是我們最容易實現的
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2743774/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2018.03.31、Android-ObjectBox-監聽AndroidObject
- Android截圖和指定View生成截圖分享AndroidView
- SpringBoot 攔截器、過濾器、監聽器Spring Boot過濾器
- springBoot的過濾器,監聽器,攔截器Spring Boot過濾器
- Android Home鍵、鎖屏鍵監聽Android
- Android 監聽生命週期工具庫Android
- android PopupWindow監聽返回鍵無效Android
- Android掃碼槍監聽封裝Android封裝
- Android長截圖的實現Android
- Android的事件處理——監聽介面方式Android事件
- Android studio(建立、監聽器intent選單)AndroidIntent
- Android 截圖的各種騷操作Android
- 監聽 watch props物件屬性監聽 或深度監聽物件
- Android搖一搖、螢幕方向的監聽Android
- Android監聽使用者行為操作(AccessibilityService)Android
- Android監聽軟鍵盤收起與彈出Android
- zabbix監控頁面自動截圖
- JavaWeb之Servlet、攔截器、監聽器及程式設計思想JavaWebServlet程式設計
- spring boot 新增自定義監聽器、過濾器、攔截器Spring Boot過濾器
- Android 截圖實現的幾種方式Android
- H5頁面監聽Android物理返回鍵H5Android
- Android開屏、鎖屏、解鎖監聽實現Android
- Android 截圖與 WebView 長圖分享經驗總結AndroidWebView
- Android多程式之Binder解綁監聽的問題Android
- watch監聽
- 監聽器,過濾器,攔截器的執行過程和對比過濾器
- MacOS專業截圖指南——截圖技巧和截圖工具分享Mac
- 監聽滑鼠事件事件
- jQuery事件監聽jQuery事件
- 時間監聽
- Flutter事件監聽Flutter事件
- 7、listener監聽
- springboot事件監聽Spring Boot事件
- js 監聽事件JS事件
- JavaScript 事件監聽JavaScript事件
- Python網頁截圖/螢幕截圖/截長圖如何實現?Python網頁
- 截圖
- Android開發之監聽軟鍵盤狀態(彈出收回)Android