BlackBerry 上不同的消息提醒方法

作者: 王恒进

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.updateIconicon;

 

2 更新应用程序图标为未读

 

Bitmap icon=Bitmap.getBitmapResource("icon/read.gif");

 

net.rim.blackberry.api.homescreen.HomeScreen.updateIconicon;

 

 

 

 

 

 

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(1001000LED.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).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值