2013-03-20 73 views
0

我已经为ICS/JB实施了一个拼写检查器。 SpellingCheckerService.Session允许我在按拼写错误的单词时出现的弹出式菜单中设置建议(以红色下划线),但在用户按下“添加到词典”时不通知我。它只是将它添加到Android用户字典中,所以我的拼写检查程序会将该单词作为拼写错误报告。如何监听UserDictionary ContentProvider的更改?

我可以经常查询用户字典,但这是非常低效的,特别是因为我甚至没有通知菜单打开。

是否有方法来侦听对UserDictionary(系统ContentProvider)的更改?更好的是,当用户按下“添加到词典”时有没有办法得到通知?

+0

从4.0开始没有钩子。不幸的是,该框架的这一部分并没有真正地被刷新。此外,大多数键盘都有他们自己使用的拼写检查程序,而不是这项服务,因为他们有自己的类型检测算法和不同类型的拼写错误,这些拼写错误很可能是基于键盘布局,语言和输入法(语音,敲击,swype等) )。 – 2013-03-20 19:50:28

+0

@GabeSechan我相信你是对的。不过下面dtmilano的解决方案看起来好像可以做到。它更好,因为它会通知我的拼写检查器发生任何更改,而不仅仅是来自弹出式菜单的更改。顺便说一下,我的拼写检查程序是键盘应用程序(TypeSmart)的一部分,并且默认拼写检查程序通过在我的字典中加下划线字词来始终踩着它的脚趾。与其告知用户禁用它,我会告诉他们切换到我的拼写检查程序,以便他们仍然可以使用可爱的弹出式菜单。 – 2013-03-20 23:26:58

+1

祝你好运。我在Swype工作了2年。尽管我喜欢这项工作以及我所创建的内容,但我很高兴不再需要处理这套API。顺便说一句,如果你想保持自己的理智,不要看引擎盖下的代码,它会驱使人们喝酒(或者至少让我去享受很多快乐时光)。 – 2013-03-21 06:02:29

回答