[英]Screen overlay detected - How to handle this in an screen overlay app
某些設備具有額外的安全功能,並在顯示權限對話框時檢查應用是否在其他設備上繪制。
我有一個側邊欄應用程序,我的應用程序必須被禁用,然后用戶才能接受系統對話框。
問題
編輯
我能想到的一個解決方案如下:
使用AccessibilityService
檢查當前的前台應用程序/視圖。 在那里,我將能夠檢查顯示當前前景活動甚至視圖的事件......
我的問題:
據我所知,你想要的是不可能的。 在類似的問題中 ,有一個檢測系統對話框的解決方案,但我不認為它適用於您的覆蓋(僅適用於當前活動的活動)。
另一個問題表明,可以通過ActivityManager類監視系統對話框,但是自LOLIPOP以來該API已被棄用。
出於這些原因,我建議您在疊加層中添加一個暫停按鈕。 或者甚至更好, 使用帶停止/啟動按鈕的粘性通知 ,以便用戶可以手動暫停疊加。
public boolean isSystemApp(String packageName) { try { // Get packageinfo for target application PackageInfo targetPkgInfo = mPackageManager.getPackageInfo( packageName, PackageManager.GET_SIGNATURES); // Get packageinfo for system package PackageInfo sys = mPackageManager.getPackageInfo( "android", PackageManager.GET_SIGNATURES); // Match both packageinfo for there signatures return (targetPkgInfo != null && targetPkgInfo.signatures != null && sys.signatures[0] .equals(targetPkgInfo.signatures[0])); } catch (PackageManager.NameNotFoundException e) { return false; } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.