在系统范围内抑制来自所有应用的Toast消息

时间:2013-08-05 01:58:27

标签: android toast

我正在开发一个截取Toast消息的应用程序,并在自定义视图中显示它们。

使用AccessibilityService可以轻松实现拦截部分。

棘手的部分是如何抑制toast消息出现(或至少使它们不可见)。我知道(据我所知),这在正常情况下是不可能的。

但有没有人知道任何可以让我抑制吐司出现或让它们隐形的黑客?

是否可以使用root权限?

注意:相对新编程。尽管如此,我还是看了Toast.java(link)的android源代码。是否可以拦截show()方法或任何其他相关方法来阻止它们出现(可能具有root权限)?

1 个答案:

答案 0 :(得分:1)

根据Dianne Hackborn here的说法,你做不到。是的,我意识到这篇文章已经有四年多了,但是我没有在SDK中看到任何东西,因为要克服它。

是的,您可以使用辅助功能服务来检测祝酒词,但这只是为了让您可以执行此外,例如TTS,而不是阻止它们。

如果可以,那将是一个糟糕的一天。例如,在桌面上粘贴快捷方式的垃圾应用程序。需要SuperUser的Root应用程序。在这两种情况下,都会弹出一个吐司,让你知道发生了一些与众不同的事情。这是一件好事,如果我发现一个压制吐司的应用程序,它会立即消失。


除了道德问题之外,如果您更改了操作系统源并自行编译,可以执行此操作,但它仍然只适用于安装了特定ROM的用户。

作为另一种选择,您是否尝试过创建自己的Toast?您可以为其指定自定义View,如果时间正确,则会在正常后显示。然后它会重叠,你不会看到第一个。我不确定它有多可行,但这是一个想法。