gpt4 book ai didi

android - 以编程方式检测 Android 屏幕覆盖

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:23 28 4
gpt4 key购买 nike

有没有办法让应用程序:

  1. 检查上面是否有屏幕覆盖,以及
  2. 找出哪个包名称拥有叠加层?

我知道 Android M 及更高版本能够在权限页面中检测屏幕覆盖,并在检测到屏幕覆盖时拒绝权限更改,但开发人员是否能够在应用层实现相同的功能?

最佳答案

您可以通过检查 MotionEvent.FLAG_WINDOW_IS_OBSCURED 来检测重叠当用户触摸您的 View 之一时标记

final View.OnTouchListener filterTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// Filter obscured touches by consuming them.
if ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Toast.makeText(v.getContext(), "Overlay detected", Toast.LENGTH_SHORT).show();
}
return true;
}
return false;
}
};

yourButton.setOnTouchListener(filterTouchListener);

来源:Android M's settings app

但是,我认为不可能检测到哪个应用拥有叠加层。

关于android - 以编程方式检测 Android 屏幕覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44197671/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com