我想使用android AccountManger
來同步我的web服務和應用程序(標準同步聯繫人和calander),但AccountManager
只顯示存儲用戶名和密碼。我的Web服務需要三個憑據:用戶名,密碼和帳戶。存儲第三條信息的最佳做法是什麼?在Android帳戶管理器中存儲其他數據
回答
由於p ablisco解釋,你可以使用的AccountManager的通過addAccountExplicitly()的用戶數據包參數存儲任意用戶數據的能力:
final Bundle extraData = new Bundle();
extraData.putString("someKey", "stringData");
boolean accountCreated = am.addAccountExplicitly(account, password, extraData);
後來,例如在你的鑑定者的getAuthToken()方法,可以檢索有關您的帳戶數據有工作:
String myData = am.getUserData(account, "someKey");
不幸的是在寫這篇文章的你只能檢索字符串,所以你的數據應該存儲,當您第一次建立綁定字符串。希望這可以幫助某人。
我正在尋找使用我的應用程序的客戶經理,我需要存儲諸如電子郵件和userIds的東西。使用上述方法安全嗎?或者任何應用程序可以讀取ID和電子郵件? –
@TomHart - 關於getUserData()的文檔(其他應用程序讀取帳戶數據的方式)聲明:「此方法要求調用方持有權限AUTHENTICATE_ACCOUNTS並具有與帳戶的身份驗證器相同的UID」。這意味着如果設置正確,只有您的應用程序才能訪問該數據。但是,AccountManager不是保存敏感數據的安全區域。對設備的物理訪問允許任何人讀取該數據。 請參閱:http://developer.android.com/reference/android/accounts/AccountManager.html#getUserData(android.accounts.Account,java.lang.String) –
我做了一些測試,我看到我可以閱讀其他賬戶數據,我只是需要的關鍵。你有關於如何安全存儲用戶ID和電子郵件的建議嗎?我所能想到的就是對setUserData使用一個非常晦澀的鍵,比如'.setUserData(「Some ^^!_Really_StrangeEMa1L_Key!」,userEmail);'但是如果有人反編譯應用程序,他們可能會得到我使用的字符串。 –
從Android的文檔,它應該有任何的用戶數據包來完成時,添加的帳戶:
AccountManager manager = AccountManager.get(context);
manager.addAccountExplicitly(account, null, userData);
或添加明確的價值觀:
manager.setUserData(account, KEY, value);
但我遇到的麻煩這個:
感謝您的回覆。我最終放棄了客戶經理。最終我遇到了很多麻煩。話雖如此,看起來我的項目正在增長,我很可能會回到它。我會很快檢查你的答案 – JonWells
- 1. Android帳戶管理器在哪裏存儲帳戶特定首選項?
- 2. 將元數據添加到Android帳戶/帳戶管理器
- 3. 帳戶管理器緩存Android
- 4. Android帳戶管理器
- 5. 將azure存儲容器複製到其他帳戶存儲容器
- 6. Azure存儲資源管理器在打開存儲帳戶時崩潰
- 7. Android自定義帳戶管理器
- 8. Android帳戶管理器的用途?
- 9. Android帳戶管理器 - 添加新帳戶
- 10. Android帳戶管理器從服務添加帳戶
- 11. Android AccountManager帳戶存儲
- 12. 數據存儲管理
- 13. 管理大量數據 - 存儲過程或數據集或其他...?
- 14. 帳戶管理器中的用戶數據可由其他應用程序訪問
- 15. 如何通過Xamarin.Forms在android內置帳戶管理器中創建帳戶?
- 16. 將其他用戶數據存儲在MembershipProvider/FormsAuthenticationTicket中
- 17. Android帳戶管理器驗證令牌的緩存時間
- 18. 如何在一個帳戶使用其他存儲庫
- 19. Bintray API訪問,用戶帳戶和存儲庫管理
- 20. Dropbox數據存儲 - 在用戶帳戶之間共享數據
- 21. 管理magento中的管理員帳戶
- 22. 將數據存儲在用戶的Google帳戶中
- 23. 在AD帳戶的數據庫中存儲SID或用戶名?
- 24. 存儲在Sqlite數據庫管理器iphone中的長描述
- 25. 如何在非管理員帳戶下啓動Azure存儲模擬器
- 26. 用戶擁有/管理其他用戶
- 27. 將Azure存儲帳戶遷移到其他訂閱
- 28. 如何將Amazon S3存儲桶轉移到其他帳戶?
- 29. VS2013服務器資源管理器失敗,需要存儲帳戶
- 30. 將UUID存儲在sqlite管理器中
對不起一個愚蠢的,但你可以不合並用戶名和帳戶,並保持它的邏輯'用戶名'? – 2011-08-15 09:11:32