电子邮件来的时候怎么打电话?

时间:2014-02-26 06:33:18

标签: blackberry

我收到通知,我的方法也被称为public void messagesAdded。我也得到了邮件的主题。但是我想在收到邮件时拨打电话但是我的电话功能不起作用(不拨电话号码)这是我的代码?

package mypackage;

import net.rim.blackberry.api.invoke.Invoke;
import net.rim.blackberry.api.invoke.PhoneArguments;
import net.rim.blackberry.api.mail.event.FolderEvent;
import net.rim.blackberry.api.mail.event.FolderListener;
import net.rim.blackberry.api.mail.event.StoreEvent;
import net.rim.blackberry.api.mail.event.StoreListener;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.blackberry.api.mail.Folder;
import net.rim.blackberry.api.mail.Message;
import net.rim.blackberry.api.mail.NoSuchServiceException;
import net.rim.blackberry.api.mail.Session;
import net.rim.blackberry.api.mail.Store;

/**
 * A class extending the MainScreen class, which provides default standard
 * behavior for BlackBerry GUI applications.
 */
public final class MyScreen extends MainScreen  implements FolderListener, StoreListener
{
    /**
     * Creates a new MyScreen object
     */
    public MyScreen()
    {        
        // Set the displayed title of the screen       
        setTitle("MyTitle");
   // makeCall("9891234175");

        try {
             Store s = Session.waitForDefaultSession().getStore();
              Folder[] folders = s.list(Folder.INBOX);
              System.out.println(folders);

              Folder inbox = folders[0];
              System.out.println(inbox);
              inbox.addFolderListener(this);

        } catch (NoSuchServiceException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        catch (Exception e) {
            // TODO: handle exception
        }


    }

    public void makeCall(String data){
        String phoneNumber = data;
        if ( phoneNumber.length() == 0 ){
            System.out.println("Error,  not a phone number");
        }
        else {
            PhoneArguments call = new PhoneArguments (PhoneArguments.ARG_CALL,phoneNumber);
            Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, call);
        }   
}

    public void batchOperation(StoreEvent e) {
        // TODO Auto-generated method stub

        System.out.println("-----------------------------------"+e.getSource());
        //makeCall("9891234175");
    }

    public void messagesAdded(FolderEvent e) {
        // TODO Auto-generated method stub
        Message orginalMessage = e.getMessage();

          if( e.getMessage().isInbound() == true )
          {
              String subject = orginalMessage.getSubject();
                 System.out.println("++++++++++++++++"+subject);
              //message is a new received message
              //perform some task here
              UiApplication.getUiApplication().invokeLater(new Runnable() {

                public void run() {
                    // TODO Auto-generated method stub

                    PhoneArguments call = new PhoneArguments (PhoneArguments.ARG_CALL,"9891234175");
                    Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, call);
                     //  makeCall("9891234175");

                }
            });
          }
    }

    public void messagesRemoved(FolderEvent e) {
        // TODO Auto-generated method stub

    }

}

1 个答案:

答案 0 :(得分:0)

这个问题以及一些相关问题,实际上已在BB论坛上提出并回答:

email interaction question

总之,电子邮件侦听器代码不会在与应用程序相同的上下文中运行。因此(与大多数侦听器处理一样),建议使用全局事件将事件处理移动到应用程序上下文中。文档:

Global Events