作者: 王恒进 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:
详细解决方案
BlackBerry 下不同的消息提醒方法
热度:8185 发布时间:2013-02-26 00:00:00.0
相关解决方案
- blackberry 中的jvm内存优化,该怎么解决
- 【电子书】blackberry 官方教程可在线阅读和上载
- 期待已久的BlackBerry的pad,传说中的黑板!BlackBerry PlayBook解决方法
- blackberry 画实心三角
- NetBeans Mobility 开发 Blackberry 的环境设立
- BlackBerry 下不同的消息提醒方法
- BlackBerry Cascades 正式版已经公布
- BlackBerry BrowserField opacity,该怎么解决
- blackberry ui api用java怎么画一个矩形啊
- 关于黑莓( blackberry)模拟器的调试有关问题
- blackberry 6.0 兑现多级菜单
- blackberry rom 官方上载
- 注册后登录不了怎么处理? (申请成为黑莓软件商店(BlackBerry App World)的开发商
- BlackBerry 模拟器怎么支持中文显示
- 支持汉语首拼 快速查询的电话本(blackberry)
- Blackberry 下显示动态 GIF 图片
- BlackBerry Eclipse plugin 1.1 上载地址及安装
- BlackBerry 打开其余应用程序
- Blackberry 下怎么使用第三方 Library (jar)
- BlackBerry 中的 udp 联接
- blackberry java开发有关资料汇总
- 定做含有CheckBox的ListField (BlackBerry)
- BlackBerry WebWorks API监控手机下进来的邮件
- BlackBerry 透过Ksoap2实现WebService访问
- 无法连接至 BlackBerry App World 服务器,该怎么解决
- BlackBerry 10发布会今晚要进行网络直播啦,该如何解决
- 【电子书】blackberry 官方课程可在线阅读和下载
- blackberry 画实心三角形解决方案
- BlackBerry 10 Simulator 不正常,该怎么解决
- blackberry 中的jvm内存优化,该如何处理