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张图片 

示例代

 

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 上不同的消息提醒方法_第2张图片 

示例代

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 上不同的消息提醒方法_第3张图片 

常用的现步:在系统中注册己的每来一条新消息将图标设为显示态,且将 图标旁的数 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).

 

 

//藏图标

 

ApplicationIndicator.setVisible(false).

 

//系统删除标的册信息

 

ApplicationIndicatorRegistry.unregister().

 

 

 

3. 在系 Message Inbox 加入你的应用

系统的 Message Inbox 中是有消的唯一入口,包括 EmailSMS/MMSIM 第三 用的消BlackBerry 提供种机,允许第三方应将自的消息写 Message Inbox 并且定这些息的图标,以及单项。同时可以建立己的用程序消息目录将自的消

 

 

息存放这个录下。 效果:

BlackBerry 上不同的消息提醒方法_第4张图片

常用的现步:分为两个步骤第一步骤是将你的图和你应用程序统的 Message Inbox 中注册你自己应的消,并且为这些消对应你自己定制的图,同为这些 消息定菜单。(如上图所示)

 

示例代如下:

 

 

1. 调用 EncodedImage.getEncodedImageResource,通过个图片文件名来

ApplicationIcon .

 

 

ApplicationIcon newIcon = new

 

ApplicationIcon( EncodedImage.getEncodedImageResource( "ml_sample

 

_new.png" ) );

 

 

ApplicationIcon openedIcon = new

 

ApplicationIcon( EncodedImage.getEncodedImageResource( "ml_sample

 

_opened.png" ) );

 

 

2.    调用 ApplicationMessageFolderRegistry.registerMessageIcon 来将消 /标,和息关联起

 

 

int MESSAGE_TYPE = 0;

 

reg.registerMessageIcon( MESSAGE_TYPE, STATUS_NEW, newIcon ); reg.registerMessageIcon( MESSAGE_TYPE, STATUS_OPENED, openedIcon );

 

 

通过以步骤 Message Inbox 中的未读状时,示的图标 newIcon;已 态时,示的标为 openedIcon

 

 

 

第二个骤是在 BlackBerry 中定一个息存放的应用消目录以及这个目录对的消处理 函数。入应消息目录的方法下:

 

查看根录名方法,选择桌面消息,进去后点菜单,向滚动选择“查看件夹,在 目录树就可看到你设置的目名了。

 

 BlackBerry 上不同的消息提醒方法_第5张图片 

 

示例代如下:

 

 

1.    创建一个类,来实现接口 ApplicationMessage

 

 

public class MLSampleMessage implements ApplicationMessage

 

 

·    获取 ApplicationMessageFolderRegistry 的引用

 

 

ApplicationMessageFolderRegistry reg = ApplicationMessageFolderRegistry.getInstance();

 

·    BlackBerry 上注册自的应用录,存放来自你的应的消。在下面,注 册了两目录一个是 Inbox,另个是 Deleted Messages

 

 

ReadableList inboxMessages = messages.getInboxMessages(); ReadableList deletedMessages = messages.getDeletedMessages(); ApplicationMessageFolder inboxFolder =

reg.registerFolder( INBOX_FOLDER_ID, "Inbox", inboxMessages ); ApplicationMessageFolder deletedFolder =

reg.registerFolder( DELETED_FOLDER_ID, "Deleted Messages",

 

deletedMessages, false );

 

 

·    为制定目录加事件处理函数

 

 

deletedFolder.addListener( this , ApplicationMessageFolderListener.MESSAGE_DELETED );

 

2.    创建一个类,来实现接口 ApplicationMessageFolderListener.

 

 

public class AppFolderListener implements

 

ApplicationMessageFolderListener

 

 

·    下一步需要 actionPerformed() Folder 个方法定义在 接口 ApplicationMessageFolderListener .

 

 

public void actionPerformed( int action, ApplicationMessage[]

 

messages, ApplicationMessageFolder folder ) {

 

// check if action was performed on multiple messages if( messages.length == 1 ) {

switch( action ) {

 

case ApplicationMessageFolderListener.MESSAGE_DELETED:

 

messageStore.deleteInboxMessage( message );

 

 

3.    设置根录名之前设置的消息录会在这个根目录下。

 

 

reg.setRootFolderName( "OA List" );

 

 
 

 

 

BlackBerry SDK下载

 

  • BlackBerry Java Plug-in for Eclipse v1.1
  • Java Plug-in for Eclipse Update Site
  • BlackBerry Web Plug-in v2.0
  • BlackBerry Widget SDK v1.0
  • BlackBerry Theme Studio v5.0
  • Plazmic Content Developer’s Kit v4.7
  • BlackBerry smartphone simulators
  • 你可能感兴趣的:(BlackBerry 上不同的消息提醒方法)