由于android在Android 12中引入了不受信任的触摸事件,我的应用程序受到了影响。如果我理解正确,问题主要是由于使用了标志FLAG_NOT_TOUCHABLE
,所以我删除了所有出现的事件
08-20 16:10:45.752 1716 2206 D InputDispatcher: Stack of obscuring windows during untrusted touch (705, 1575):
08-20 16:10:45.752 1716 2206 D InputDispatcher: * type=2038, package=xxxxxxx, id=204, mode=USE_OPACITY, alpha=1.00, frame=[0,145][1080,2296], touchableRegion=[0,145][1080,2296], window={36c5ada , flags={NOT_FOCUSABLE | NOT_TOUCHABLE | NOT_TOUCH_MODAL | LAYOUT_IN_SCREEN | FORCE_NOT_FULLSCREEN | HARDWARE_ACCELERATED}, inputFeatures={0x0}, hasToken=true, applicationInfo.name=, applicationInfo.token=<null>
仍然 NOT_TOUCHABLE 标志没有出现!目前只有一篇关于这个主题的文章,我的案例属于这个博客的“不必要的大窗口”。即我的窗口已经wrap_content
存在,并且我已经删除了任何出现的FLAG_NOT_TOUCHABLE
. 我的触摸仍然被阻止。我怎么知道我的触摸工作正常?正如 developer.android 网站在我运行以下命令时所建议的那样adb shell settings put global block_untrusted_touches 2
,一切似乎都运行良好。任何帮助将不胜感激!