me gustaría usar el androide AccountManger
para sincronizar mi servicio web y la aplicación (sincronización estándar de contactos y calandra), sin embargo, sólo aparece AccountManager
para almacenar un nombre de usuario y contraseña. Mi servicio web requiere tres credenciales: un nombre de usuario, una contraseña y una cuenta. ¿Cuál es la mejor práctica para almacenar la tercera pieza de información?almacenar más datos en Android Account Manager
Respuesta
como P ablisco explicó, puede utilizar la capacidad del administrador de cuentas para almacenar datos de usuario arbitrarios a través del parámetro userData Bundle addAccountExplicitly() 's:
final Bundle extraData = new Bundle();
extraData.putString("someKey", "stringData");
boolean accountCreated = am.addAccountExplicitly(account, password, extraData);
Más tarde, por ejemplo, en el método de autenticador getAuthToken(), puede recuperar los datos relacionados con la cuenta que está trabajar con:
String myData = am.getUserData(account, "someKey");
Desafortunadamente partir de este escrito sólo se puede recuperar las cadenas, por lo que los datos deben ser almacenados como una cadena la primera vez que construye el paquete. Espero que esto ayude a alguien.
Estoy buscando usar el administrador de cuenta para mi aplicación, y necesitaría almacenar cosas como correos electrónicos y userIds. ¿Es seguro hacerlo usando el método anterior? ¿O podría alguna aplicación leer la identificación y el correo electrónico? –
@TomHart - la documentación en getUserData() (la forma en que otras aplicaciones leerían los datos de la cuenta) establece: "Este método requiere que la persona que llama tenga el permiso AUTHENTICATE_ACCOUNTS y que tenga el mismo UID que el autenticador de la cuenta". Eso significa que si la configuración es correcta, solo tu aplicación tendrá acceso a esa información. Sin embargo, AccountManager NO es un área segura para guardar datos confidenciales. El acceso físico al dispositivo permite que cualquiera lea esos datos. Ver: http://developer.android.com/reference/android/accounts/AccountManager.html#getUserData(android.accounts.Account, java.lang.String) –
Hice algunas pruebas y vi que podía leer otros datos de cuentas, solo necesitaba la clave. ¿Tiene alguna recomendación sobre cómo almacenar de manera segura las identificaciones de usuario y correos electrónicos? Todo lo que puedo pensar es utilizar una clave realmente oscura para setUserData, como '.setUserData (" Some ^^! _ Really_StrangeEMa1L_Key! ", UserEmail);' pero si alguien descompila la aplicación, es posible que obtengan la cadena que utilicé. –
De la documentación de Android se supone que debe hacer ya sea con la userData Bundle cuando se añade la Cuenta:
AccountManager manager = AccountManager.get(context);
manager.addAccountExplicitly(account, null, userData);
o añadir de forma explícita los valores:
manager.setUserData(account, KEY, value);
pero estoy teniendo problemas con esto:
Gracias por la respuesta. Terminé abandonando al gerente de cuenta. Al final tuve tantos problemas con eso. Habiendo dicho eso, parece que mi proyecto está creciendo y puedo volver a él. Verificaremos su respuesta pronto – JonWells
- 1. Android File Manager Library
- 2. Android Download Manager
- 3. HIbernate Entity Manager: ¿cómo almacenar en caché las consultas?
- 4. Almacenar datos estáticos en Android: ¿recurso personalizado?
- 5. Android SDK Manager, ¿qué instalar?
- 6. apple enterprise account
- 7. La mejor manera de almacenar datos en caché en Android
- 8. Cómo almacenar datos en Elemento seguro en android
- 9. Almacenar objetos en Android
- 10. Uso de Google-Account para iniciar sesión
- 11. Almacenar datos en NSUserDefaults
- 12. ¿Dónde almacenar grandes datos de aplicaciones en dispositivos Android?
- 13. Android: ¿Cómo almacenar datos en la memoria interna?
- 14. La mejor manera de almacenar datos en android
- 15. Instalación de Android SDK y AVD Manager
- 16. Android: ¿Cómo almacenar cookies?
- 17. Almacenar en Datos de Sesión vs almacenar en Base de Datos Sql para datos temporales
- 18. MySQL: ¿tipo de datos más eficiente para almacenar notas largas?
- 19. Base de datos de Android corrupta, pero puede abrirse en SQLite Manager. ¿Recuperable?
- 20. HSQLDB Manager?
- 21. Almacenar una clave secreta en Android
- 22. puedo descargar paquetes de Android a través de SDK y AVD Manager más
- 23. Almacenar datos en el almacén de datos de App Engine desde una aplicación de Android
- 24. cómo almacenar contraseñas en la base de datos?
- 25. ¿Dónde almacenar datos en iphone?
- 26. No se puede encontrar android sdk 2.3.4 en SDK manager
- 27. ¿Cómo iniciar el servicio usando Alarm Manager en Android?
- 28. Cómo solicitar descargas múltiples usando Download Manager en Android 2.3.3
- 29. ¿Cuantos datos se pueden almacenar en MySQL?
- 30. Reading Atom feed of gmail account from C#
Disculpe si es tonto, pero ¿no puede fusionar el nombre de usuario y la cuenta y mantener un 'Nombre de usuario' lógico? –