Spanish Como leer un identificador único de un dispositivo móvil

Iñaki Mutuberria

New Member
Licensed User
Longtime User
Hola a todos,


agradecería mucho cualquier información (ejemplos de código, links, etc...) para incluir en mi código una función que me permita identificar de manera única un dispositivo móvil.


Gracias de antemano por vuestra colaboración,


Iñaki
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Iñaki:

Formas de leer un identificar unico existen varias. Una de ellas la tienes en tu post sobre el IMEI, aunque el IMEI es un id del teléfono, y no un id del dispositivo.

Una forma podria ser esta (Con este sistema no necesitas permisos en el manifest):

B4X:
Sub LeerIdDispositivo AsString

Dim p AsPhone
Dim id AsString
Dim r AsReflector
Dim Api AsInt

 Api = r.GetStaticField("android.os.Build$VERSION", "SDK_INT")

  If Api < 9Then
    'dispositivo antiguo
    id= p.GetSettings("android_id")
  Else
    'Nuevo dispositivo
    id= r.GetStaticField("android.os.Build", "SERIAL")
    If id.ToLowerCase = "unknown"Then id= p.GetSettings("android_id")
  EndIf

  Return id

End Sub

Puedes hacer una llamada asi:

B4X:
  Log("Leer Id del dispositivo " & LeerIdDispositivo)

También podrias leer como id la dirección MAC de la tarjeta SIM, la dirección MAC es la de la tarjeta de red, claro, que en el caso que sea una tablet que no utilice tarjeta no te valdrá.
También se podria cambiar si el movil es root (y sabes hacerlo), pero si buscamos el id perfecto no lo encontraremos. También con el sistema anterior "podria" darte un id diferente si cambias la ROM. Al final lo que tienes que mirar es si tu id cubre la mayoria de dispositivos “normales” y cual es el fin de ese id.

B4X:
Dim R AsReflector
R.Target = R.GetContext
R.Target = R.RunMethod2("getSystemService", "wifi", "java.lang.String")
R.Target = R.RunMethod("getConnectionInfo")

Log(R.RunMethod("getMacAddress"))

Este método necesita este permiso:

AddPermission(android.permission.ACCESS_WIFI_STATE)


Saludos
 

Iñaki Mutuberria

New Member
Licensed User
Longtime User
Hola, Jesús.

De verdad, muchas gracias por tu post. Lo he probado y funciona perfectamente.

Has sido de gran ayuda y te agradezco mucho tu tiempo e interés.

Que sigas bien,

Iñaki
 

Octavio Diaz

Member
Licensed User
Longtime User
Para el caso de una tablet que tenga registro con google un correo electronico, como puedo obtener dicha informacion? gracias!
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Octavio

Como le expliqué a Iñaki, puedes ver el ID del dispositivo que es el primer ejemplo y este no depende del tipo de dispositivo (movil o tablet). Y si tu tablet tiene tarjeta SIM, tambien puedes leer la dirección MAC y emplear el que mas te guste.


Saludos
 

Octavio Diaz

Member
Licensed User
Longtime User
gracias bgsoft, obtengo la serie del dispositivo, pero no se si se puede obtener el correo Gmail con el que el dispositivo se ha registrado, gracias!!!
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Octavio

La cabecera del Post es Como leer un identificador único de un dispositivo móvil, por favor, si quieres lanzar una nueva pregunta crea un nuevo post y asi alguien te contestará, y de paso el que busque tu pregunta tambien lo encontrará, si la pregunta la formulas desde aqui y alguien te la responde, NADIE la encontrará ya que la cabecera no tiene nada que ver con la nueva pregunta.

Iñaki:
Por favor, si no te es mucha molestia añade a la cabecera del post [SOLUCIONADO], asi cuando otro forero busque , verá que se te solucionó la pregunta y no tendra que ir entrando en los post para saber si se resolvió o no.

Por favor, cuando podais leer el post "Mejorar el foro “Spanish Forum”, ahi entre todos estamos poniendo de nuestra parte para que este foro sea mas agil y mejor para todos
http://www.b4x.com/android/forum/threads/mejorar-el-foro-“spanish-forum”.39799/

Saludos
 
Top