我不认为这是可能的,因为我还没有在SDK文档中找到任何内容。
但我知道是否有可能编写一个记录Toast消息的应用程序。记录哪个应用程序显示它以及显示的消息包含在哪里。
这是一个完全个人的努力来创建一个可以检测吐司消息的应用程序。因为我的手机上的东西正在创建一个叫“发送...”的祝酒词,每天约一次,而对于我的生活,我无法追踪有问题的应用程序(服务类)。我认为它可能是GMail或Evernote,但是发送的Toast消息略有不同。我打算建立一个应用程序,因为1)我不知道LogCat是否会显示任何内容,2)我不想让我的个人/开发电话一直插入PC(如“发送” ......“消息很少发生。”
答案 0 :(得分:16)
可以使用Accessibility Service捕获消息/通知,看一下。
您可以扩展类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...
}
}
注意:这在Android 2.2上不起作用,因为它似乎没有捕获Toasts,但它适用于Android 4.0 +。