Получить содержимое сообщения (дата, состояние чтения / непрочитания, имя отправителя, вся информация): Gmail API - PullRequest
0 голосов
/ 22 апреля 2019

Я создаю приложение для доступа к Gmail, чтобы показать всю электронную почту пользователю,

Я пытаюсь получить сведения о сообщении, так как я настроил клиент Gmail.

для получения сведений о сообщениях, которые я использую нижеприведенным кодом, но он дает нулевой указатель

код

Message message3 = service.users().messages().get(userId, message.getId()).execute();
byte[] bodyBytes = Base64.decodeBase64(message3.getPayload().getParts().get(0).getBody().getData().trim().toString()); // get body
String body = new String(bodyBytes, "UTF-8");
Log.d(TAG, "listMessagesWithLabels: body " + body);`

Ошибка:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference

Я пробовал другое решение:

Message message2 = service.users().messages().get(userId, message.getId()).setFormat("raw").execute();

Base64 base64Url = new Base64(true);
byte[] emailBytes = base64Url.decodeBase64(message2.getRaw());

Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);

MimeMessage email = new MimeMessage(session, new ByteArrayInputStream(emailBytes));

Log.d(TAG, "listMessagesWithLabels: emailgetReceivedDate " + email.getReceivedDate().getTime());

В этом коде невозможно получить время, имя отправителя и т. Д.

Существует ли какой-либо простой способ получить все детали сообщения или любые изменения в коде для декодирования деталей.

...