Blackberry 使用ApplicationMenuItem覆盖RIM API中的默认消息发送者

Blackberry 使用ApplicationMenuItem覆盖RIM API中的默认消息发送者,blackberry,java-me,Blackberry,Java Me,我想知道是否有办法在消息编辑屏幕中创建一个ApplicationMenuItem,当选中它时,它会绕过默认的发送程序将消息发送到所选联系人本身。我对菜单项很满意,并且已经看到了如何通过检索“context”参数来执行类似的操作,但我不确定如何获取所选的消息正文和联系人 在ApplicationMenuItem中,消息编辑上下文的项将是 见代码: package so.samples; import net.rim.blackberry.api.invoke.Invoke; import net

我想知道是否有办法在消息编辑屏幕中创建一个ApplicationMenuItem,当选中它时,它会绕过默认的发送程序将消息发送到所选联系人本身。我对菜单项很满意,并且已经看到了如何通过检索“context”参数来执行类似的操作,但我不确定如何获取所选的消息正文和联系人

在ApplicationMenuItem中,消息编辑上下文的项将是

见代码:

package so.samples;

import net.rim.blackberry.api.invoke.Invoke;
import net.rim.blackberry.api.invoke.MessageArguments;
import net.rim.blackberry.api.mail.Address;
import net.rim.blackberry.api.mail.Message;
import net.rim.blackberry.api.mail.MessagingException;
import net.rim.blackberry.api.menuitem.ApplicationMenuItem;
import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;

public class SOComposeMsgMenuApp extends UiApplication {

    public static void main(String[] args) {
        (new SOComposeMsgMenuApp()).enterEventDispatcher();
    }

    public SOComposeMsgMenuApp() {
        ApplicationMenuItem emailMenuItem = new ApplicationMenuItem(0) {
            public Object run(final Object context) {
                if (context instanceof Message) {
                    StringBuffer text = new StringBuffer("Message \nTo:\n");
                    Message msg = (Message) context;
                    Address[] to = new Address[] {};
                    try {
                        to = msg.getRecipients(Message.RecipientType.TO);
                    } catch (MessagingException e) {
                    }
                    for (int i = 0; i < to.length; i++) {
                        text.append(to[i].toString());
                        text.append("\n");
                    }
                    text.append("Body:\n");
                    text.append(msg.getBodyText());
                    Dialog.inform(text.toString());
                }
                return context;
            }

            public String toString() {
                return "My Menu Item";
            }
        };

        ApplicationMenuItemRepository amir = ApplicationMenuItemRepository
                .getInstance();
        amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_EMAIL_EDIT,
                emailMenuItem);
        Invoke.invokeApplication(Invoke.APP_TYPE_MESSAGES,
                new MessageArguments(MessageArguments.ARG_NEW, "", "testing",
                        "just trying to test menu item from compose screen"));
    }
}
包装so.samples;
导入net.rim.blackberry.api.invoke.invoke;
导入net.rim.blackberry.api.invoke.MessageArguments;
导入net.rim.blackberry.api.mail.Address;
导入net.rim.blackberry.api.mail.Message;
导入net.rim.blackberry.api.mail.MessaginException;
导入net.rim.blackberry.api.menuitem.ApplicationMenuItem;
导入net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository;
导入net.rim.device.api.ui.ui应用程序;
导入net.rim.device.api.ui.component.Dialog;
公共类SOComposeMsgMenuApp扩展了UiApplication{
公共静态void main(字符串[]args){
(新的SOComposeMsgMenuApp()).enterEventDispatcher();
}
公共SOComposeMsgMenuApp(){
ApplicationMenuItem emailMenuItem=新的ApplicationMenuItem(0){
公共对象运行(最终对象上下文){
if(消息的上下文实例){
StringBuffer text=新的StringBuffer(“消息\nTo:\n”);
消息msg=(消息)上下文;
地址[]至=新地址[]{};
试一试{
to=msg.getRecipients(Message.RecipientType.to);
}捕获(消息异常e){
}
for(int i=0;i