1

我正在尝试创建一个程序,允许我在我的 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
4

0 回答 0