Android無需權限顯示懸浮窗


TYPE_TOAST一直都可以顯示, 但是用TYPE_TOAST顯示出來的在2.3上無法接收點擊事件, 因此還是無法隨意使用.
下面是我之前研究后台線程顯示對話框的時候記得筆記, 大家可以看看我們項目中有需求需要在后台任務中顯示Dialog, 項目最初的做法是用Activity模擬Dialog, 一個Activity已經承載了近20種Dialog, 代碼混亂至極. 后來我發現Dialog可以通過改變Window Type實現不依賴Activity顯示, 然后就很興奮的要在使用這種方式來作為新的實現方式.
最初WindowType是WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 可是這是懸浮窗了, MIUI會默認禁止(真他媽操蛋,也沒有任何提示)最終放棄. 后來試着換成了WindowManager.LayoutParams.TYPE_TOAST, 起初效果很好,MIUI也不禁止了, 哪里都能顯示, 這下開心了. 可是后來又發現在2.3上不能接收點擊事件, 也就是說Dialog上的按鈕不能點擊, 這他媽就很操蛋了, 又放棄了. 又試了試其他的Type都不能滿足需求, 結果如下:TYPE_SEARCH_BAR: 未知
TYPE_ACCESSIBILITY_OVERLAY: 拒絕使用
TYPE_APPLICATION: 只能配合Activity在當前APP使用TYPE_APPLICATION_ATTACHED_DIALOG: 只能配合Activity在當前APP使用
TYPE_APPLICATION_MEDIA: 無法使用(什么也不顯示)
TYPE_APPLICATION_PANEL: 只能配合Activity在當前APP使用(PopupWindow默認就是這個Type)
TYPE_APPLICATION_STARTING: 無法使用(什么也不顯示)
TYPE_APPLICATION_SUB_PANEL: 只能配合Activity在當前APP使用TYPE_BASE_APPLICATION: 無法使用(什么也不顯示)
TYPE_CHANGED: 只能配合Activity在當前APP使用
TYPE_INPUT_METHOD: 無法使用(直接崩潰)
TYPE_INPUT_METHOD_DIALOG: 無法使用(直接崩潰)
TYPE_KEYGUARD_DIALOG: 拒絕使用
TYPE_PHONE: 屬於懸浮窗(並且給一個Activity的話按下HOME鍵會出現看不到桌面上的圖標異常情況)
TYPE_TOAST: 不屬於懸浮窗, 但有懸浮窗的功能, 缺點是在Android2.3上無法接收點擊事件
TYPE_SYSTEM_ALERT: 屬於懸浮窗, 但是會被禁止

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM