如何在 Symbian 操作系统上的 SMS 编写器中捕获用户的击键,特别是针对诺基亚 N73(或任何支持 symbian 的设备) http://en.wikipedia.org/wiki/Symbian_OS#Devices_that_have_used_the_Symbian_OS)?我是 symbian 开发的新手,我正在尝试编写一个应用程序来分析发送短信的人的写作风格。任何信息(或推动正确的方向)都会很棒。

非常感谢,

A

有帮助吗?

解决方案

实际上,您可以捕获针对 Symbian 操作系统中任何应用程序的击键。RWindowGroup::CaptureKey()RWindowGroup::CaptureLongKey() 允许您的可执行文件从任何应用程序捕获密钥,无论您的应用程序是否位于前台。但是,在这种情况下,这可能会很乏味 - 这两个函数通过捕获特定的键代码和修饰符组合来工作,因此您必须设置大量捕获来处理 SMS 编辑器中的所有键组合。

一旦您的可执行文件捕获了事件,您还必须将事件传递给 SMS 编写器。虽然名义上可以使用 RWsSession::SendEventToWindowGroup() 或者 TApaTask::SendKey(), ,存在复杂性,事件按正确的顺序到达(即按键按下、按键事件、按键按下)以及不同 FEP(前端处理器)的用户输入行为。

因此,虽然名义上按照上述要求进行操作是可行的,但实施和测试将被证明是乏味的,而且风险很大。如果您只想分析写作风格来收集数据(而不是在产品应用程序中),那么您最好编写自己的短信编辑器 - 诺基亚论坛网站上有大量编辑器和短信发送的示例。

其他提示

在一个相关的说明中 - 是否有一个API可以检测到所有按键被一次按下,因为我在我的Symbian手机上对它的API感到沮丧? ; - )

嗯,回答你的问题有几个层次。

  • 击键实际上是由消息编辑器应用程序捕获的。因此,要么它提供一个 API 来为您提供所有击键(您可以在 http://forum.nokia.com. 。您会找到消息编辑器 API,但它主要是关于重用 GUI 控件,而不是您正在寻找的内容),或者您需要一个自己的透明应用程序,该应用程序位于前台并在反馈之前捕获击键到任何紧随其后的应用程序。幸运的是(出于明显的安全原因),Symbian 操作系统不允许您执行后面的操作。

  • 但是,您可以让自己的应用程序读取保存在手机内存中的消息:当它们保存在草稿文件夹或短信发件箱中时。

强制性的无耻插件:我建议阅读消息传递章节 http://www.quickrecipesonsymbianos.com 了解如何使用 Symbian 消息存储

您的案例感兴趣的类别是:CmsvEntry、CMsvSession、MMsvSessionObserver、CMsvOperation 和 CSmsClientMtm。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top