vivo系統無許可權開啟懸浮框的問題
大家都知道,新增懸浮窗的原理就是獲取WindowManager,然後呼叫WindowManager的
addView(View view, ViewGroup.LayoutParams params)
方法即可。
View
就是需要顯示的懸浮窗,ViewGroup.LayoutParams包含了是全屏、非全屏和是否需要攔截觸控事件的引數
而在前段時間的vivo幾款手機中出現的一個問題是,沒有給予許可權卻能在應用內開啟懸浮窗,但是當應用位於後臺時,懸浮窗消失,並且再開啟邊無法開啟懸浮窗了,而且會導致異常
這是為什麼呢?
根據log和相關資料發現在我使用FloatWindowParamManager.checkPermission(getApplicationContext())檢測使用者是否給予我們“
允許顯示在其他應用的上層
”這個許可權,而在vivo手機中,當應用處於前臺是,無論使用者是否給予相關許可權,我的判斷總是返回true,也就是總是返回使用者允許懸浮窗存在,而應用處於前臺是,懸浮窗的所有功能卻也是正常執行的,但是一旦處於後臺,懸浮窗消失,重新嘗試開啟,無法正常開啟
經過嘗試發現:原來Vivo在應用前臺可見時會預設給予應用這個許可權,無論實際這個懸浮窗許可權有沒有被使用者允許都可以。但是當應用處於後臺時只有這個懸浮窗許可權開關真的開啟時才能新增顯示懸浮窗!也就是說一樣的程式碼,應用處於前臺是,一直返回true,當應用處於後臺時才是真正的許可權出來的時候
所以,對於Vivo的操作重點空i在於確保App處於後臺時確實獲取到了懸浮窗許可權
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2743780/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何獲取Vivo系統的懸浮窗許可權狀態
- Android懸浮框的適配問題Android
- Android 輔助許可權與懸浮窗Android
- 非侵入式無許可權應用內懸浮窗的實現
- vivo NEX雙屏版怎麼設定懸浮球功能?vivo NEX雙屏版懸浮球的開啟方法
- Android中的懸浮框Android
- MySQL許可權問題MySql
- win10系統如何開啟管理員許可權 win10開啟管理員許可權的圖文教程Win10
- 許可權維持專題:作業系統許可權維持作業系統
- 許可權的級聯問題
- mongodb 的許可權系統MongoDB
- Android懸浮框的實現Android
- 許可權系統:一文搞懂功能許可權、資料許可權
- 無程式碼實現CRM角色許可權問題
- Centos sudo 許可權問題CentOS
- jenkins 容器內的許可權問題Jenkins
- sqlserver 賦予許可權的問題SQLServer
- 許可權系統:許可權應用服務設計
- 用無程式碼解決CRM角色許可權問題
- Ubuntu 下 Composer 許可權問題Ubuntu
- 有贊許可權系統
- 基於tp3.2.3開發的許可權管理系統,路由,微信,cdn,許可權路由
- Laravel 框架的日誌許可權問題Laravel框架
- Grafana9的dashboard許可權問題Grafana
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- 打造自己的系統許可權控制
- 許可權系統:6個許可權概念模型設計模型
- 許可權系統:許可權應用服務設計Tu
- 遇到問題,需要開發角色許可權模組
- w10系統共享印表機怎麼開許可權_w10系統共享印表機訪問許可權如何獲取訪問許可權
- Mysql資料庫許可權問題MySql資料庫
- hdfs檔案本地許可權問題
- Laravel Daily 日誌許可權問題LaravelAI
- vue許可權問題解決方案Vue
- 系統開發中許可權控制的重要性
- 【Android】Phoenix OS(鳳凰系統)啟用root許可權Android
- 企業許可權管理系統
- Winner許可權管理系統3.0