Четене на имейли в Gmail с помощта на Android SDK

Искам да чета имейли в Gmail в собственото си приложение за Android. Има ли все пак да го направите с помощта на android sdk? Ако не, какви са другите опции? анализиране на gmail atom?


person Mohammad Moghimi    schedule 22.05.2011    source източник
comment
Въпросите за развитие не са по темата тук.   -  person Matthew Read    schedule 22.05.2011


Отговори (2)


Питам и отговарям на този въпрос тук. Имате нужда от Gmail.java код (във въпроса има връзка) и трябва да разберете, че не трябва да използвате този недокументиран доставчик

Има ли добри примери за кратки кодове, които просто четат ново gmail съобщение?

person Aracem    schedule 25.05.2011

Възможно е с помощта на API на GMail, ето някои стъпки, които намерих за полезни.

  1. Започнете с официалния образец, за да стартирате GMailAPI, вижте тук
  2. Когато следвах инструкциите, намерих за полезно да прочета за подписването на приложения тук за да получите правилно Стъпка 1+2 в примера.
  3. Когато извадката работи, можете да използвате информацията тук за достъп до съобщения. Можете напр. заменете изпълнението в MakeRequestTask.getDataFromApi
  4. Не забравяйте да добавите поне обхвата само за четене за подходящи разрешения. В примера обхватите са дефинирани в масив:

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

  5. Намерението ми беше да прочета всички предмети. Използвах следния код (който е адаптираният метод 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;
    }
    
person anhoppe    schedule 14.04.2017