Я создаю приложение для доступа к 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());
В этом коде невозможно получить время, имя отправителя и т. Д.
Существует ли какой-либо простой способ получить все детали сообщения или любые изменения в коде для декодирования деталей.