Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在锁定windows模式下,防止其他应用在我的应用上绘制_Android - Fatal编程技术网

Android 在锁定windows模式下,防止其他应用在我的应用上绘制

Android 在锁定windows模式下,防止其他应用在我的应用上绘制,android,Android,我们正在为学校编写一个软件,要求用户在Android上激活pin窗口模式,以防止学生离开我们的应用程序。不幸的是,Android并没有限制其他应用程序在当前锁定的应用程序上绘制,Facebook messenger等应用程序仍然能够在锁定模式下绘制我们的应用程序并显示消息预览 有没有办法阻止所有其他应用程序覆盖当前活动的应用程序 注意:到目前为止,我正在使用辅助功能模式进入“设置”并禁用所有其他应用程序的“提取”权限。当然,稍后我会把它们恢复到原来的状态。我发现这个解决方案非常难看,而且对用户不

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

有没有办法阻止所有其他应用程序覆盖当前活动的应用程序


注意:到目前为止,我正在使用辅助功能模式进入“设置”并禁用所有其他应用程序的“提取”权限。当然,稍后我会把它们恢复到原来的状态。我发现这个解决方案非常难看,而且对用户不友好,但是我正在寻找更好的方法。

您可以覆盖方法
视图。在FilterTouchEventForSecurity()
上,它允许检测是否存在
标志窗口被遮挡的运动事件,并会让您知道活动顶部是否有视图

@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或编程方式将
setFilterTouchesWhenobscure
添加到你的视图中。

你可以通过Android管理API实现这一点:Kai我应该提到,我们的应用程序不会在专用设备上运行。每个人都应该能够在手机上安装并使用我们的应用程序。我认为管理API是为单用途设备设计的。这如何帮助我防止绘制视图出现在顶部?似乎SetFilterTouchesWhenobscure与过滤触摸事件有关,而不是阻止其他视图覆盖我的视图。API Level 9中添加的android:FilterTouchesWhenobscure指定当视图的窗口被另一个可见窗口遮挡时是否过滤触摸。当设置为true时,每当toast、dialog或其他窗口出现在视图窗口上方时,视图将不会收到触摸。android:filtertoucheswhenobscure=“true”android:filtertoucheswhenobscure=“false”是的,但它不会阻止其他应用程序覆盖我的应用程序,对吗?我正试图阻止所有的抽签。