PDA

Ver la Versión Completa : Identificar terminal


esnaucer
13/08/14, 16:46:46
Buenas tardes,
estoy implementando una app en la cual necesito registrar unos eventos en base de datos.
El problema es que necesito identificar que teléfono hace la petición.

Había pensado en registrar el numero de teléfono del terminal, pero la pregunta seria, ¿es posible recoger el numero de teléfono del terminal con java?

O por otra parte, ¿como podría identificar a cada teléfono sin utilizar el numero?

Saludos.

kriogeN
13/08/14, 20:57:36
No puedes identificar al teléfono por su número, por eso servicios como WhatsApp usan confirmación por SMS.

En cuanto a la identificación única en Android:

Respuesta corta: No existe para todos los casos.

Respuesta larga:

Puedes usar el IMEI del dispositivo, pero habrán dispositivos sin IMEI, como por ejemplo las tablets que no tienen 3G. También el IMEI se puede haber convertido en "genérico" por un mal uso de ciertos archivos (como el EFS de los móviles Samsung), y tendrías muchos móviles con el mismo IMEI.

Puedes usar el MAC del WiFi, pero sólo funcionará si el WiFi está encendido. Si obligas a que el usuario tenga encendido el WiFi es la mejor opción, aunque al igual que el IMEI se puede corromper y convertirse en genérico. Existen dispositivos que no tienen WiFi, y en ese caso obviamente no funcionará tampoco, pero se pueden contar con los dedos de una mano.

Existe un método (que es el más generalizado pero ni mucho menos te da un valor único) que es obtener el UUID. El UUID es un número completamente aleatorio de 128 bits que se genera en el primer reset del móvil (si haces un HardReset al móvil se genera uno nuevo). Obviamente las posibilidades de colisión entre 2 dispositivos, y es más, entre 2 dispositivos que vayan a usar tu app es casi nula, por no decir imposible, pero existir la posibilidad existe. Otra pega que tiene es que la mayoría de móviles con Android 2.2 tienen un bug en el que en todos los casos devuelve siempre el mismo UUID, así que todos esos móviles comparten el UUID.

Otra opción es que el dispositivo almacene un identificador que le mandas tú la primera vez, y siempre use ese identificador, pero si el usuario borra los datos de la app le enviarás un identificador nuevo y no sabrás que usaba el antiguo.

esnaucer
14/08/14, 08:40:43
Vaya me pensaba que seria mas fácil identificar cada terminar.

Creo que voy a quedarme con la opción de enviarle al terminar un código identificador desde la API, creo que es buena solución ya que la app es privada para un empresa.

Muchas gracias por la respuesta me ha servido de mucho y es muy completa.

Saludos.