处于固定窗口模式时,防止其他应用覆盖我的应用

时间:2019-01-30 21:13:30

标签: android

我们正在为学校编写软件,要求用户在Android上激活固定窗口模式,以防止学生离开我们的应用程序。不幸的是,Android并没有限制其他应用绘制当前固定的应用,而Facebook Messenger等应用仍可以在固定模式下绘制我们的应用并显示消息的预览。

是否有一种方法可以防止所有其他应用覆盖当前活动的应用?

注意:到目前为止,我正在使用辅助功能模式进行设置,并禁用所有其他应用程序的透支权限。我稍后将它们恢复到原始状态。我发现此解决方案非常丑陋,而且不方便用户使用,因此正在寻找更好的方法。

1 个答案:

答案 0 :(得分:0)

您可以覆盖方法View.onFilterTouchEventForSecurity(),它可以检测FLAG_WINDOW_IS_OBSCURED是否存在运动事件,并让您知道活动顶部是否有视图< / p>

@Override
public boolean onFilterTouchEventForSecurity(MotionEvent event) {
    if ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) == MotionEvent.FLAG_WINDOW_IS_OBSCURED){
        // show error message
        return false;
    }
    return super.onFilterTouchEventForSecurity(event);
}

,如果您希望避免在应用程序上绘制其他应用程序,则可以通过XML或通过编程将setFilterTouchesWhenObscured添加到视图中。

相关问题