Android Socket.getchannel()方法在javamail中始终返回null

Android Socket.getchannel()方法在javamail中始终返回null,android,jakarta-mail,nio,Android,Jakarta Mail,Nio,javamail的IdleManager不在Android中工作 当我尝试使用idlemanager查看文件夹时,javamail抛出错误消息文件夹未使用SocketChannels。Android SocketCannel在套接字中始终返回null 在深入挖掘之后,我知道当从SSLSocketFactory创建套接字时,它会使SocketChannel为null 这个问题有解决办法吗 这是stacktrace javax.mail.MessagingException: Folder is

javamail的IdleManager不在Android中工作

当我尝试使用idlemanager查看文件夹时,javamail抛出错误消息文件夹未使用SocketChannels。Android SocketCannel在套接字中始终返回null

在深入挖掘之后,我知道当从SSLSocketFactory创建套接字时,它会使SocketChannel为null

这个问题有解决办法吗

这是stacktrace

 javax.mail.MessagingException: Folder is not using SocketChannels
 at com.sun.mail.imap.IdleManager.watch(IdleManager.java:203)
 at com.sample,mail.ImapIdle$1.doInBackground(ImapPushNotification.java:120)
 at android.os.AsyncTask$2.call(AsyncTask.java:292)
 at java.util.concurrent.FutureTask.run(FutureTask.java:237)
 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
   at java.lang.Thread.run(Thread.java:818)
试试看(刚刚发布)。它有一些安卓补丁

我对此进行了深入研究,据我所知,这是Android中的一个缺陷,JavaMail无法轻松解决请将此报告给谷歌。以下内容适用于真实Java,但在Android上打印为空:

    Socket s = SocketChannel.open().socket();
    s.connect(new InetSocketAddress(host, port));
    Socket ss = ((SSLSocketFactory)SSLSocketFactory.getDefault()).
                        createSocket(s, host, port, true);
    System.out.println("SocketChannel wrapped " + ss.getChannel());

我使用的是Javamail 1.5.6您是否设置了
mail.imap.usesocketchannels
属性?是的,我将
mail.imap.usesocketchannels
设置为true。同样的代码在java中工作,但不适用于AndroidSonds,就像另一个Android与java不兼容的情况一样。异常的堆栈跟踪是什么?你有没有一个简单的例子重现这个问题?安卓的哪个版本?我从未收到过你的来信,但我推出了一个包含解决方法的JavaMail 1.6.0-SNAPSHOT版本。我仍然很难将此视为一个问题。例如,为什么没有堆栈跟踪?“Android总是在
套接字中返回null”是什么意思?@EJP感谢您的快速响应。Stacktrace补充道,这是两个问题中的一个,现在是第三个。“当从
SSLSocketFactory
创建
Socket
时,它使
SocketChannel
null”到底意味着什么?@EJP请停止问愚蠢的问题。看起来将在下一版本的JavaMail中修复。