我正在创建一个用于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());
此代码无法检索时间,发件人姓名等。
是否有任何简单的方法来检索所有消息详细信息或对代码进行任何更改以解码详细信息。