检测Toast消息

Jon*_*lis 11 android toast

我不认为这是可能的,因为我还没有在SDK文档中找到任何内容.

但我知道是否有可能编写一个记录Toast消息的应用程序.记录哪个应用程序显示它以及显示的消息包含什么.

这是完全个人的努力来创建可以检测吐司消息的应用程序.因为我的手机上的东西正在创建一个叫"发送..."的祝酒词,每天约一次,而对于我的生活,我无法追踪有问题的应用程序(服务类).我认为它可能是GMail或Evernote,但是发送的Toast消息略有不同.我打算建立一个应用程序,因为1)我不知道LogCat是否会显示任何内容,2)我不想让我的个人/开发电话一直插入PC(如"发送" ......"消息很少发生".

Flo*_*ern 17

可以通过辅助功能服务捕获消息/通知,看一下.

您可以扩展该类AccessibilityService并重写该方法onAccessibilityEvent()以实现以下内容:

public void onAccessibilityEvent(AccessibilityEvent event) {
    if (event.getEventType() != AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED)
        return; // event is not a notification

    String sourcePackageName = (String) event.getPackageName();

    Parcelable parcelable = event.getParcelableData();
    if (parcelable instanceof Notification) {
        // Statusbar Notification
    }
    else {
        // something else, e.g. a Toast message
        String log = "Message: " + event.getText().get(0) 
                   + " [Source: " + sourcePackageName + "]";
        // write `log` to file...
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:这在Android 2.2上不起作用,因为它似乎没有捕获Toasts,但它适用于Android 4.0+.