我正在开发一个截取Toast消息的应用程序,并在自定义视图中显示它们。
使用AccessibilityService
可以轻松实现拦截部分。
棘手的部分是如何抑制toast消息出现(或至少使它们不可见)。我知道(据我所知),这在正常情况下是不可能的。
但有没有人知道任何可以让我抑制吐司出现或让它们隐形的黑客?
是否可以使用root权限?
注意:我相对新编程。尽管如此,我还是看了Toast.java(link)的android源代码。是否可以拦截show()
方法或任何其他相关方法来阻止它们出现(可能具有root权限)?
答案 0 :(得分:1)
根据Dianne Hackborn here的说法,你做不到。是的,我意识到这篇文章已经有四年多了,但是我没有在SDK中看到任何东西,因为要克服它。
是的,您可以使用辅助功能服务来检测祝酒词,但这只是为了让您可以执行此外,例如TTS,而不是阻止它们。
如果可以,那将是一个糟糕的一天。例如,在桌面上粘贴快捷方式的垃圾应用程序。需要SuperUser的Root应用程序。在这两种情况下,都会弹出一个吐司,让你知道发生了一些与众不同的事情。这是一件好事,如果我发现一个压制吐司的应用程序,它会立即消失。
除了道德问题之外,如果您更改了操作系统源并自行编译,可以执行此操作,但它仍然只适用于安装了特定ROM的用户。
作为另一种选择,您是否尝试过创建自己的Toast?您可以为其指定自定义View
,如果时间正确,则会在正常后显示。然后它会重叠,你不会看到第一个。我不确定它有多可行,但这是一个想法。