使用Android SDK阅读Gmail邮件

时间:2011-05-22 03:26:12

标签: java android sdk gmail

我想在自己的Android应用中阅读Gmail邮件。无论如何使用android sdk做到这一点?如果没有,还有其他选择吗?解析gmail原子?

2 个答案:

答案 0 :(得分:5)

我在这里问这个问题。 您需要Gmail.java代码(问题中有链接),您必须明白不应该使用该无证书提供商

Are there any good short code examples that simply read a new gmail message?

答案 1 :(得分:1)

可以使用GMail API,以下是我发现的一些有用的步骤。

  1. 从官方示例开始,以启动GMailAPI,请参阅here
  2. 按照说明操作后,我发现阅读有关应用程序签名here的信息非常有帮助,以便在示例中获得Step1 + 2。
  3. 如果示例正在运行,您可以使用信息here来访问邮件。你可以,例如替换MakeRequestTask.getDataFromApi
  4. 中的实现
  5. 请务必至少添加只读范围以获得适当的权限。在示例中,作用域在数组中定义:

    private static final String[] SCOPES = { GmailScopes.GMAIL_LABELS, mailScopes.GMAIL_READONLY };

  6. 我的目的是阅读所有科目。我使用了以下代码(来自官方样本的改编的getDataFromApi方法):

     private List<String> getDataFromApi() throws IOException {
         // Get the labels in the user's account. "me" referes to the authentized user.
         String user = "me";
         List<String> labels = new ArrayList<String>();
    
         ListMessagesResponse response = mService.users().messages().list(user).execute();
    
         for (Message message : response.getMessages()) {
    
             Message readableMessage = mService.users().messages().get(user, message.getId()).execute();
             if (readableMessage.getPayload() != null) {
                 for (MessagePartHeader header : readableMessage.getPayload().getHeaders()) {
                     if (header.getName().compareToIgnoreCase("Subject") == 0) {
                         labels.add(header.getValue());
                    }
                }
            }
        }
    
        return labels;
    }