Con la librería PHONE obtengo el id del teléfono y esta muy bien,
pero cuando el teléfono es DUO (Doble Sim) estos traen dos DeviceId, como le hago para que la app detecte los dos.
Gracias amigo por responder.
navegando en el foro me hicieron cambiar de rumbo ahora estoy tratando de identificar cada teléfono con este código que encontré en el foro
B4X:
Dim p As Phone
Dim id As String
Dim ref As Reflector
Dim Api As Int
Api = ref.GetStaticField("android.os.Build$VERSION", "SDK_INT")
If Api < 9 Then
'dispositivo antiguo
id= p.GetSettings("android_id")
Else
'Nuevo dispositivo
id= ref.GetStaticField("android.os.Build", "SERIAL")
If id.ToLowerCase = "unknown" Then id= p.GetSettings("android_id")
End If
Return id
Yo lo haria mas seguro buscando la palabra "unknown" en vez de comparar, por que si te viene con espacio o algún otro caracter al inicio o fin ya no la reconocerá, ademas de eso añadir un id que en algunos dispositivos chinos vienen en todos igual, me he encotrado en una misma marca y dispositivos diferentes el id 1234567890ABCDEF , también me he encontrado del 1 al 9 así que si añades esa comprobacion te evitas problemas. Esto ya lo he comentado en algunos post de aqui.
B4X:
Sub LeerIdDispositivo() As String
Dim p As Phone
Dim id, id1 As String
Dim r As Reflector
Dim Api As Int
Api = r.GetStaticField("android.os.Build$VERSION", "SDK_INT")
If Api < 9 Then
'dispositivo antiguo
id= p.GetSettings("android_id")
Else
'dispositivo nuevo
id= r.GetStaticField("android.os.Build", "SERIAL")
id1 = id.ToLowerCase
If id1.Contains ("unknown") Or id1.Contains("123456789") Then id= p.GetSettings("android_id")
End If
Return id
End Sub