我有一个非常简单的代码,试图在Android上使用JavaMail打开套接字,如下所示:
public boolean connect() {
try {
store_ = session_.getStore("imap");
store_.connect(email_.host, email_.user, email_.pass);
folder_ = store_.getDefaultFolder();
folder_ = folder_.getFolder("inbox");
folder_.open(Folder.READ_ONLY);
}
catch(Exception e) {
disconnect();
return false;
}
return true;
}
public void disconnect() {
if (folder_ != null) {
try {
folder_.close(false);
}
catch(Exception e) {
}
folder_ = null;
}
if (store_ != null) {
try {
store_.close();
}
catch(Exception e) {
}
store_ = null;
}
}
适用于不需要SSL的IMAP服务器。其他,这个应用程序只是阻止。 无论尝试/捕获。任何的想法? 请注意,一旦我提到“imaps”而不是“imap”,我就会工作,但我不希望我的应用程序在任何情况下阻止。
答案 0 :(得分:0)
这是在UI线程上完成的吗?你应该把它卸载到像ASyncTask或服务这样的东西,如果它是因为connect()(socket.connect())方法将阻止。
答案 1 :(得分:0)
我建议您先阅读此内容,然后检查您是否正在使用主UI线程或后台线程上的套接字连接。可以在此链接上找到示例:here