有沒有辦法通過克服SecurityException來獲取Gmail用戶帳戶的密碼。從AccountManager獲取用戶憑證「密碼」
我正在努力在沒有用戶提示的情況下在後臺發送電子郵件。我爲此使用的javamail API要求從中發送電子郵件的帳戶的用戶名和密碼。我在Android中找到使用AccountManger獲取密碼的麻煩。
有沒有辦法通過克服SecurityException來獲取Gmail用戶帳戶的密碼。從AccountManager獲取用戶憑證「密碼」
我正在努力在沒有用戶提示的情況下在後臺發送電子郵件。我爲此使用的javamail API要求從中發送電子郵件的帳戶的用戶名和密碼。我在Android中找到使用AccountManger獲取密碼的麻煩。
幸運的是,沒有。 ActivityManager.getPassword()
調用僅被允許與身份驗證模塊具有相同UID的應用程序(在本例中爲Google應用程序)。即使您設法調用它,它也不會存儲實際的密碼,而是存儲它的加密版本或主令牌。你可以找到更多的細節它是如何工作在這裏:http://nelenkov.blogspot.jp/2012/11/android-online-account-management.html
谷歌的的SMTP服務器不支持,雖然令牌的OAuth2代替密碼,這樣就可以剛剛從AccountManager
獲得令牌,並用它來驗證和發送電子郵件。詳情點擊這裏:
https://developers.google.com/google-apps/gmail/oauth_overview
感謝名單:)爲您推薦的支持,而不是密碼令牌谷歌的SMTP服務器的選擇,我想一個POC和從客戶經理拿到令牌作爲參數傳遞。不過,它給了我javax.mail.AuthenticationFailedException異常顯示無效的憑據。請引導我通過獲取正確的標記。 –
請參閱答案中鏈接的文檔。 –