作者: 王恒进 1. 背景 BlackBerry 上的一大特色就是基于消息的功能,其中消息提醒功能是初学 BlackBerry 遇到的一 大难题。BlackBerry 上的消息(Messaging)定义很广,包括邮件、短信/彩信、即使消息(如 MSN/FaceBook/Twitter/BlackBerry Messenger 等)、以及应用程序自己定义的消息。 这些消息到达 BlackBerry 时,BlackBerry 提供了 5 种消息提醒的方法,它们是:LED 闪烁、提 示音、界面左上方的小图标提醒(叫做 Indicator),应用程序图标的变化(比如在有新消息到 来时,应用程序图标的右上角会出现一个红色的星号)。 同时,BlackBerry 提供一种机制,可以将所有的消息都注册到系统唯一的 Message Inbox 中 (也就是第一排左边第一个图标),在这个 Inbox 中,当不同的应用有新的消息到来时,可以 新添一条自己的记录(包含自定义的应用图标,自定义的打开菜单,在 Message 文件列表中 创建自己的消息目录)。 2. 常见的 5 种提醒方式 2.1 应用程序图标 效果: 示例代码: 1, 更新应用程序图标为已读 Bitmap icon=Bitmap.getBitmapResource("icon/read.gif"); net.rim.blackberry.api.homescreen.HomeScreen.updateIcon(icon); 2, 更新应用程序图标为未读 Bitmap icon=Bitmap.getBitmapResource("icon/read.gif"); net.rim.blackberry.api.homescreen.HomeScreen.updateIcon(icon); 2.2 LED 灯 效果: 示例代码: 1,首先需要 import 相应的 API 包: import net.rim.device.api.system.*; 或者 import net.rim.device.api.system.LED; 2,关闭 LED 灯 if(LED.isSupported(LED.LED_TYPE_STATUS)) { LED.setState(LED.STATE_OFF); } 3,打开 LED 灯或者开启 LED 灯闪烁 if(LED.isSupported(LED.LED_TYPE_STATUS)) { //LED.setState(LED.STATE_ON); //or LED.setState(LED.STATE_BLINKING); LED.setConfiguration(100, 1000, LED.BRIGHTNESS_100); } 4,注意捕获抛出的异常 如果 setState(int state)的输入参数为不正确的状态时,可能会抛出异常: IllegalArgumentException 2.3 震动 示例代码: net.rim.device.api.system.Alert.startVibrate(5*1000); 2.4 提示音 调用系统声音播放的接口,示例如下: // create an instance of the player from the InputStream Player player = javax.microedition.media.Manager.createPlayer(path, type); player.realize(); player.prefetch(); VolumeControl volumeControl = (VolumeControl) player.getControl("VolumeControl"); volumeControl.setLevel(100); // start the player player.start(); 2.5 Indicator 如下图所示,BlackBerry 提供 Indicator 的机制,可以在顶部状态栏显示一个小图标,同时 还可以在小图标旁边显示一个数字,来标识是否有新消息到来以及新消息的数目。 效果: 常用的实现步骤:在系统中注册自己的图标。每来一条新的消息,将图标设为显示状态,并且将 图标旁边的数字加 1;当每读一条未读消息,将图标设为隐藏,并将图标旁边的数字减 1. 示例代码: 第一步:创建 ApplicationIndicatorRegistry 和 ApplicationIcon 对象 ApplicationIndicatorRegistry reg = ApplicationIndicatorRegistry.getInstance(); EncodedImage image = EncodedImage.getEncodedImageResource( "clowds.gif" ); ApplicationIcon icon = new ApplicationIcon( image ); 第二步:注册或者获取 ApplicationIndicator 对象 //第一次调用时,通过方法 ApplicationIndicator register(ApplicationIcon icon, boolean iconOnly, boolean visible)来注册 Indicator,其中第二个参数控制是否只显示 图标而不显示数字 ApplicationIndicator indicator = reg.register( icon, false, true); //以后可以通过以下方法来获取已注册的 Indicator 实例。 ApplicationIndicator AppIndicator = reg.getApplicationIndicator(); 第三步:操作 Indicator(显示/隐藏/删除) //设置图标和数值 AppIndicator.set( newIcon, newValue ); //显示图标 ApplicationIndicator.setVisible(true). margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; text-align:
【公告】做黑莓发贴达人,赢最新黑莓技术图书
活动说明:为答谢广大应用开发者对黑莓的支持,CSDN论坛特推出“做黑莓发贴达人,赢取《黑... BlackBerry 如何调用本地的应用程序
如题 比如判断手机中都有什么浏览器 选择调用某一个
------解决方案--------------------
... 黑莓开发需要什么基本?
它需要什么程式开发,基于什么语言,有什么书籍和网站参考?
------解决方案--------------------
晕了....... BB如何设置Field可以跨行显示?
如题 当field在流式布局中 改行剩余空间不足显示改field的时候 field整体换行 留下上一行的空白
求... 在BB上如何做软件的自动升级啊?
在BB上如何做软件的自动升级啊?
各位有没有DEMO~
给个思路也可以...........
------解决方案---... 【求助】调用系统拍照功能,界面不在前台显示
我用Invoke.invokeApplication调用system camera,源码如下,但是camera的界面,在CameraSc... blackberry 画实心三角形
blackberry怎么通过graphics画实心三角形?
谢谢
------解决方案--------------------
黑莓自带的例子... BB 如何获取字符串的像素宽度?
如题~
------解决方案--------------------
Java code
font.getAdvance(str)
------解决方案---... BlackBerry入门求助
小弟刚开始接触,想知道除了这里,还有没有比较火热的开发者论坛~先谢了(^ω^)
------解决方案----------------... 【公告】黑莓应用开发大赛邀您“慧眼识英雄”——网友投票
大赛介绍
RIM中国正在举办国内首届黑莓应用开发大赛(BlackBerry Deve...
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。其他相似内容:
【公告】做黑莓发贴达人,赢最新黑莓技术图书解决方案
BlackBerry 怎么调用本地的应用程序
黑莓开发需要什么基本?解决办法
BB怎么设置Field可以跨行显示
在BB上怎么做软件的自动升级啊
调用系统拍照功能,界面不在前台显示
blackberry 画实心三角形,该如何解决
BB 怎么获取字符串的像素宽度
BlackBerry入门
【公告】黑莓应用开发大赛邀您“慧眼识英雄”——网友投票,该如何处理