我收到通知,我的方法也被称为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
}
}
答案 0 :(得分:0)
这个问题以及一些相关问题,实际上已在BB论坛上提出并回答:
总之,电子邮件侦听器代码不会在与应用程序相同的上下文中运行。因此(与大多数侦听器处理一样),建议使用全局事件将事件处理移动到应用程序上下文中。文档: