Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AddFolderListener在某些设备中工作,但在另一个设备中不工作´;行不通_Java_Blackberry_Directory_Listener - Fatal编程技术网

Java AddFolderListener在某些设备中工作,但在另一个设备中不工作´;行不通

Java AddFolderListener在某些设备中工作,但在另一个设备中不工作´;行不通,java,blackberry,directory,listener,Java,Blackberry,Directory,Listener,我正在开发一个应用程序,它可以监听来自电子邮件帐户的消息,并执行特定的操作。为此,我使用以下方法: public class EmailListener implements FolderListener { public void registerEmailListener(boolean register) { ServiceBook sb = ServiceBook.getSB(); ServiceRecord[] srs = sb.findRecordsByCid("CMIME");

我正在开发一个应用程序,它可以监听来自电子邮件帐户的消息,并执行特定的操作。为此,我使用以下方法:

public class EmailListener implements FolderListener {

public void registerEmailListener(boolean register) {
ServiceBook sb = ServiceBook.getSB();
ServiceRecord[] srs = sb.findRecordsByCid("CMIME");
if (srs != null) {
ServiceRecord sr;
ServiceConfiguration sc;
/* unregister all email listener  to avoid duplicate listeners */
desregisterAllEmailListeners(srs);
for (int i = srs.length - 1; i >= 0; --i) {
sr = srs[i];
try {
sc = new ServiceConfiguration(sr);
registerEmail(sc, register);

} catch (Exception e) {
e.printStackTrace();
}
}

}
}

private void registerEmail(ServiceConfiguration sc, boolean register) {
Session s = Session.getInstance(sc);
if (s != null) {
Folder[] folders = s.getStore().list();
for (int foldercnt = folders.length - 1; foldercnt >= 0; --foldercnt) {
Folder f = folders[foldercnt];
// If the folder doesn't have the service book for this email, we do not want to register it
if (f.getFullName().indexOf(sc.getEmailAddress()) >= 0) {
recurse(f, register);
}
}
} 
}
private void recurse(Folder f, boolean add) {
if (f.getType() == Folder.INBOX) {

f.removeFolderListener(this);
if (add) {
f.addFolderListener(this);
}
}
Folder[] farray = f.list();
for (int fcnt = farray.length - 1; fcnt >= 0; --fcnt) {
recurse(farray[fcnt], add);
}
}

public void desregisterAllEmailListeners(ServiceRecord[] srs) {
ServiceRecord sr;
ServiceConfiguration sc;
for (int i = srs.length - 1; i >= 0; --i) {
sr = srs[i];
try {
sc = new ServiceConfiguration(sr);
registerEmail(sc, false);
} catch (Exception e) {
e.printStackTrace();
}
}
}

public void messagesAdded(final FolderEvent e) {

....

}

....

}
当收到电子邮件时,它会执行messageAdded并执行特定操作。问题是,在某些设备中它工作,而在另一个设备中则不工作。它在任何情况下都能正确注册电子邮件侦听器,但在某些情况下不会执行messageAdded。 有什么问题吗

它适用于:9300OS6.0和OS5.0以及9220OS7.1 它在9320操作系统7.1、9380操作系统7.1和9800操作系统6.0中不起作用


非常感谢。

是的!!,它执行messageAdded…调试。我不知道为什么在某些设备中不显示日志

其寓意是: 不要只相信logEvent,使用这个和调试工具,两者都可以