![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Guardar un valor unico por smartphone
Necesito guardar un valor unico e irrepetible por smartphone (ya sea de la marca X o Y, o sea el modelo A o B). Es para un top 10 de puntuaciones con lo cual solo quedarian registrados 10 valores en el servicio web.
Estoy pensando en coger el numero de serie pero no lo tengo muy claro. Que opinais por aqui?? |
|
|
|
#2
|
||||
|
||||
|
Eso no existe en Android, yo tengo un problema parecido y sólo lo he podido solucionar a medias.
Tienes varias alternativas: 1ª) Usar el IMEI del móvil, el problema es que hay muchos móviles (entre otros el mio), que por liberación a lo burro me he quedado sin IMEI y tengo uno genérico. Igual ocurre con muchos móviles Samsung. Además las tablets que no son 3G no tienen IMEI. 2ª) Usar el ANDROID_ID, esta a priori parece la mejor opción, consiste en una cadena hexadecimal de 64 bits que se genera automáticamente cada vez que haces un Hard Reset del móvil. Como digo, se produce cada vez que haces Hard Reset, así que un mismo móvil cada vez que lo devuelves a estado de fábrica se le genera un ANDROID_ID nuevo. Y además se genera al azar, así que podría llegar a ocurrir que 2 móviles (o tablets, o móvil y tablet) llegasen a tener en algún momento el mismo ANDROID_ID, aunque bien es cierto que las probabilidades son pequeñísimas, pero la posibilidad existe. Esto en iOS es más fácil, usas el UUID del móvil y a correr, aunque Apple en su gran reto de joder al desarrollador ha prohibido (recientemente, hace pocas semanas) que las aplicaciones nuevas usen el UUID del móvil fuera del móvil, así que no puedes hacer una aplicación que lo envíe. |
|
#3
|
|
Okk ya me hago una idea. Yo habia pensado en el numero de serie porque imagino que en la propia marca ese valor no creo que se repita. Y en las diferentes marcas supongo que tendran su propia nomenclatura.
Lo del IMEI si lo conocia y lo descarte por lo que comentas. Yo tampoco tengo el imei real y por pereza asi se queda, jejej, el dia de mañana ya se haria algo. PD: No se porque pero no me sorprende lo de apple |
|
#4
|
|
Ya estoy con este tema y lo he solucionado de la siguiente manera:
IMEI + dd/mm/aaaa + hh/mm/ss (encriptado a MD5 para que no haya problemas y a chutar) Asi me aseguro al 100% un identificador unico para cada smartphone |
|
#5
|
||||
|
||||
|
Hombre, usando IMEI + día + hora no te aseguras 100% que no va a ser único, pero si te lo aseguras al 99.99999999999999999999%, vamos, que va a ser casi imposible.
Pero, al hacerlo MD5 es cuando lo "jodes", el MD5 es un algoritmo de hashing no de cifrado, y por definición los algoritmos de hashing pueden tener colisiones. Es decir, 2 cadenas distintas de IMEI + dia + hora pueden generar el mismo MD5. Volvemos a lo mismo, va a ser jodidamente difícil que colisionen, pero no puedes decir alegremente que has encontrado una solución 100% perfecta, cuando aún nadie en Android lo ha conseguido. |
|
#6
|
|
Okk, entonces mejor fuera el MD5, pero los tiros no van tal mal no??
Lo dejaremos en "dia + IMEI + hora" ya que va a ser la mejor forma. Existe muy poca probabilidad de que coincidan varios a la vez en la misma decima de la hora y si a eso le sumas el IMEI.. Yo creo que se queda buen identificador. Lo del MD5 lo decia por si acaso pasara algo, el identificador no va a estar expuesto en ningun momento. Última edición por rinxe Día 24/04/13 a las 20:27:31 |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 22:37:05 (GMT +1)
HTCMania: líderes desde el 2007





