如何创建访问低级硬件的BlackBerry App?

时间:2010-02-15 22:11:07

标签: blackberry mobile low-level

我已经写了一些黑莓手机应用程序,但现在我正在尝试编写一个必须以某种低级别方式访问硬件(键盘)的应用程序,而且我似乎无法找到一种方法来实现它,也没有在'官方'董事会帮助它。

问题是,我需要知道在黑莓键盘上按下'$'键的时间,所以我的应用程序(或常驻服务)可以捕获它,停止'$'字符显示,如果用户接下来按下元音,则为该元音添加一个重音...如果它按下另一个键,只需发回'$'字符+另一个字符。

即。 '$'+'a'=á

换句话说,我需要创建一个应用程序或服务,将'$'键转换为重音键,就像典型的非美国PC键盘一样。

现在问题在于:整个Blackberry OS在Java虚拟机下运行(将JVM变为实际的操作系统)。所以你可以想象,为它编写的每个应用程序都是用Java编写的。

在他们的Java实现中显然有一组特殊的黑莓api库,因此开发人员能够访问特定的Blackberry功能和特性......但是似乎没有什么东西可以用来完成我的特定任务

但是也许有,而且我还没有找到它,因为我还是Blackberry Programming的新手。

因此,在该说明中,将非常感谢任何帮助或评论。

-Gabriel Alonso。

3 个答案:

答案 0 :(得分:1)

屏幕需要有焦点才能获得关键事件。

出于安全原因,RIM不允许对其硬件进行低级访问。

按住一个字母键并滚动拇指滚轮以滚动国际/重音字符,等式符号和其他标记。

Here is the source

答案 1 :(得分:0)

Blackberry不允许执行应用程序,如果他们使用某些API,更不用说低级编程了。

您可以在应用程序中使用键盘处理 - 这是Java的可能性。与KeyListener接口和Keypad类一样。

答案 2 :(得分:0)

这是一个非常晚的回复,但是......

您可以使用keyChar(屏幕成员和KeyListenerInterface)拦截任何键 - 对于第一个字母,捕获按下的键。如果它是“$”保持它并且不要调用super.keyChar。在下一个keyChar(或没有输入的延迟之后)执行你的映射,如果$先前被按下,并将你设计的字符代码发送到super.keyChar调用。如果keyChar存在实现问题,则可以类似地使用keyDown和keyUp。