有没有办法监听其他应用程序创建的toast消息?
对于上下文,我的应用程序向另一个应用程序广播意图以切换其服务。然后另一个应用程序发出祝酒词,表示该服务现在处于打开或关闭状态。我希望在广播后拦截(只读取)Toast消息,以确保我以正确的方式切换服务。不幸的是,除了切换和等待祝酒之外,我没有任何其他方式知道服务的当前状态。
感谢。
答案 0 :(得分:3)
是的,你可以,我肯定在4.x
连接到辅助功能api,文本到语音的示例都在网络上,但不是挂钩触摸和东西,而是挂钩以下内容:
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
我还没弄明白如何在新系统中只阅读祝酒词或通知,也许你可以找到一种方法。
答案 1 :(得分:0)
尝试扩展AccessibilityService:
public class NotificationFetcherService extends AccessibilityService {
public void onAccessibilityEvent(AccessibilityEvent event) {
}
}
如果您不知道如何使用它,谷歌会帮助您
答案 2 :(得分:-1)
Per @ st0le和我自己的评论,它的官方认为它是不可能的(好的,所以从技术上来说,在我们任何一个人都不知道之前是不可能的,但这不是在这里或那里)。