簡體   English   中英

getDefaultInstance 和 javax.mail.Session、java.io.InputStream 的問題

[英]issue with getDefaultInstance and javax.mail.Session, java.io.InputStream

我一直在尋找這兩個錯誤的答案,但沒有找到解決方案。

Cannot resolve method 'getDefaultInstance' in 'Session'
'MimeMessage(javax.mail.Session, java.io.InputStream)' in 'javax.mail.internet.MimeMessage' cannot be applied to '(android.se.omapi.Session, android.net.Uri)'

我是否缺少有關使用該軟件包的內容?

public void getBodySignature(Uri uri) throws Exception {
        Properties properties = System.getProperties();

        Session session = Session.getDefaultInstance(properties, null);
        MimeMessage msg = new MimeMessage(session, uri);
        SMIMESigned signedMessage;
        // multipart/signed message
        // two parts- one part for the content that was signed and one part for the actual signature.
        if (msg.isMimeType("multipart/signed")) {
            signedMessage = new SMIMESigned((MimeMultipart) msg.getContent());
        } else if (msg.isMimeType("text/plain") || msg.isMimeType("application/pkcs7-signature")) {
            // in this case the content is wrapped in the signature block.
            signedMessage = new SMIMESigned(msg);
        } else {
            throw new IllegalArgumentException("Not a signed message!");
        }

您的Session導入是錯誤的。 android.se.omapi.Session的導入替換為javax.mail.Session 如果這會導致其他問題,因為您需要兩個導入,那么對於其中一個,您可以使用完全限定名稱。 例如:

javax.mail.Session session = javax.mail.Session.getDefaultInstance(properties, null);

另一個問題是Uri論點。 沒有接受URIUri參數的MimeMessage構造函數。 我假設您有一個現有的消息作為文件並希望從中讀取。 您需要將Uri轉換為InputStream 我在https://developer.android.com/reference/android/net/Uri中找不到任何相關內容。 我會看看你是否可以完全擺脫Uri參數並將其替換為InputStream或可以轉換為InputStream的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM