我正在尝试创建一个程序,允许我在我的 Android 手机上阅读我的 gmail 消息。我在笔记本电脑上通过 IMAP 连接的电子邮件很好,但是当我开始在手机上调试它时,应用程序意外关闭。它无法在代码“store.connect”行上建立连接。我认为这只是一个清单文件权限问题,但我已经包含了权限 Internet。有任何想法吗?谢谢大家的帮助。
PS这是我的第一篇文章,所以如果我需要添加任何其他细节,请告诉我。
谢谢!
这是清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.meva.application"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission
android:name="android.permission.INTERNET"/>
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name="MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="FakeEmailHandler" />
</application>
</manifest>
这是 IMAP 连接
public static int getMail() throws MessagingException
{
java.util.Properties props = new java.util.Properties();
props.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.imap.socketFactory.fallback", "false");
props.setProperty("mail.imap.socketFactory.port", "993");
Session session = Session.getDefaultInstance(props);
Store store = session.getStore("imap");
store.connect("mail.googlemail.com", username, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message[] message = folder.getMessages();
int messageCount = message.length;
String [] titles = new String[message.length];
// Close connection
folder.close(false);
store.close();
return messageCount;
}
我已将连接包装在 Logs 中。说是管道故障。看一看。
11-14 18:22:56.390: E/myApp(29333): starting connection
11-14 18:22:56.390: I/RT(29442): mPlusClient onConnectionFailed: a{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{426edf90: android.os.BinderProxy@426edf30}}
11-14 18:22:56.401: I/ActivityThread(29517): Pub com.ebay.mobile.providers.itemcacheprovider: com.ebay.mobile.providers.ItemCacheProvider
11-14 18:22:56.411: I/RT(29442): mShouldResolveOnFail = false
11-14 18:22:56.421: W/SocketClient(198): write error (Broken pipe)
11-14 18:22:56.461: E/myApp(29333): Failed Connection