WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程BlackBerryBlackBerry 应用程序开发者指南 第二卷:高级--第2章 集成消息

BlackBerry 应用程序开发者指南 第二卷:高级--第2章 集成消息
作者:佚名  来源:本站整理  发布时间:2008-3-15 0:32:11

操作消息

接收消息通知

FolderListenerStoreListener接口的实现允许你的应用程序接收消息通知.

public class MailTest implements FolderListener, StoreListener { ... }


 

增加一个监听者到消息Store

为了监听消息存储事件,例如同步,获取一个Store对象,并将一个StoreListener实例加给它.

try {

    Store store = Session.waitForDefaultSession().getStore();

}

catch (NoSuchServiceException e) {

    System.out.println(e.toString());

}

store.addStoreListener(this);

当消息以批处理的形式增加和删除时,StoreListener.batchOperation()的实现定义了应用程序的行为.例如,你的应用程序可能检查任何它引用的对象是否删除.

void batchOperation(StoreEvent e)

{

    // Perform action when messages added or removed in batch operation.

}

增加一个监听者给文件夹

为了监听一个文件夹事件,例如将一个消息加入到一个特定的文件夹,为你想接收新消息通知的文件夹获取一个Folder对象.将一个FoldListener实例加到此文件夹对象.

Folder[] folders = store.list(Folder.INBOX);

Folder inbox = folders[0];

inbox.addFolderListener(this);

当文件夹事件发生时, 实现FolderListener.messagesAdded() FolderListener.messagesRemoved()完成操作.例如,你可实现这些方法维护任何引用你的应用程序必须指定的mail文件夹的一致性.

void messagesAdded(FolderEvent e) {

    // Perform processing on added messages.

}

 

void messagesRemoved(FolderEvent e)

{

    // Perform processing on removed messages.

}

接收一个消息的更多部分

缺省的,发送一个消息的第一部分(一般约2KB)BlackBerry设备上.调用消息体部分上的hasMore()判断在服务器上是否有更多的数据.调用moreRequestSent()判断是否一个获取更多数据的请求已经发出.调用more()请求一个消息的更多部分.

if (( bp.hasMore())&&(! bp.moreRequestSent())   

{

    Transport.more(bp, true);

}

more()的第二个参数是一个Boolean,它指定了是否仅获取消息体部分的下一部分(false),或者获取所有剩下的部分(true).

打开一个消息

获取消息存储以及包含消息的文件夹:

Store store = Session.waitForDefaultSession.getStore();

Folder folder = Store.getFolder("SampleFolder");

从文件夹获取消息对象.迭代数组,并获取信息,例如发送者,主题,显示给用户.

Message[] msgs = folder.getMessages();

当用户从列表中选择一个消息时,调用Message对象上的方法获取合适的字段以及消息体内容显示给用户.

Message msg = msgs[0]; // Retrieve the first message.

Address[] recipients = msg.getRecipients(Message.RecipientType.TO)

Date sent = msg.getSentDate();

Address from = msg.getFrom();

String subject = msg.getSubject();

Object o = msg.getContent();

// Verify that the message is not multipart.

if ( o instanceof String ) {

String body = (String)o;

}

//...

:调用一个消息上的getBodyText()方法获取普通文本内容作为一个String.如果消息不包含普通文本,方法将返回null.

上一页  [1] [2] [3] [4] [5] [6]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码