首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > BlackBerry >

BlackBerry 下不同的消息提醒方法

2012-12-25 
BlackBerry 上不同的消息提醒方法作者: 王恒进1.??背景BlackBerry?上的一大特色就是基于消息的功能,其中消

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??????应用程序图标

效果:

?

?

BlackBerry 下不同的消息提醒方法?

示例代码:

?

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?

效果:

?

?

?

?

?

BlackBerry 下不同的消息提醒方法?

示例代码:

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?的机制,可以在顶部状态栏显示一个小图标,同时

还可以在小图标旁边显示一个数字,来标识是否有新消息到来以及新消息的数目。


效果:

?

?

BlackBerry 下不同的消息提醒方法?

常用的实现步骤:在系统中注册自己的图标。每来一条新的消息,将图标设为显示状态,并且将?图标旁边的数字加?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:

热点排行