某些设备具有额外的安全功能,并在显示权限对话框时检查应用是否在其他设备上绘图。
我有一个侧边栏应用,在用户接受系统对话框之前,我的应用必须被禁用。
问题
修改
我能想到的一个解决方案如下:
使用AccessibilityService
检查当前的前台应用/视图。在那里,我将能够检查向我展示当前前景活动甚至视图的事件......
我的问题:
答案 0 :(得分:0)
据我所知,你想要的是不可能的。在类似question中,有一个检测系统对话框的解决方案,但我认为它不适用于您的叠加层(仅适用于当前活动的活动)。
另一个question表示可以通过ActivityManager类监视系统对话框,但是自LOLIPOP以来该API已被弃用。
由于这些原因,我建议您为叠加层添加一个暂停按钮。或者甚至更好,使用带有停止/启动按钮的粘性notification ,以便用户可以手动暂停覆盖。
<小时/> 要识别系统应用,您需要使用this answer:
中所述的包名称
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;
}
}