Salve, premetto che non sono un programmatore esperto, ho utilizzato solo il Fortran, il Basic e poi il VB6 un bel po’ di anni fa …
Tuttavia, grazie a B4A ho realizzato un’applicazione che proteggo tramite una Password calcolata partendo dal “Codice” del telefono in uso.
In passato avevo letto un post di Erel che consigliava il metodo seguente per acquisire il codice del telefono :
Sub GetDeviceId As String
Api = r.GetStaticField("android.os.Build$VERSION", "SDK_INT")
Log("Api = "& Api)
If Api < 9 Then
'Old device
If File.Exists(File.DirInternal, "__id") Then
Return File.ReadString(File.DirInternal, "__id")
Else
Dim id As Int
id = Rnd(0x10000000, 0x7FFFFFFF)
File.WriteString(File.DirInternal, "__id", id)
Return id
End If
Else
'New device
Return r.GetStaticField("android.os.Build", "SERIAL")
End If
End Sub
Ci ho capito poco, però tutto ok, l'ho utilizzata fino a qualche settimana fa, quando ho scoperto che Android 10 non accetta la suddetta procedura … ho fatto qualche ricerca e poi ho trovato un link che trattava lo stesso argomento :
https://www.b4x.com/android/forum/threads/111818/#content
Al quale Erel rispondeva, suggerendo la seguente procedura, da lui ritenuta ottimale :
The only valid id is this one: https://www.b4x.com/android/forum/threads/advertising-id.101050/#content
A questo punto devo dire che, tanto per cambiare non ci ho capito nulla, ma questo per me non è una novità …
Ho rinunciato …
Ho ripiegato su una vecchia procedura che avevo già utilizzato prima che Erel la dichiarasse inadeguata ma che, fortunatamente, viene accettata anche dai telefoni con sistema Android 10 …
Vedi qui sotto :
Sub Codice_Click
Dim P As Phone
Dim Codice As String
Codice = P.GetSettings("android_id") 'Codice alfanumerico di 16 caratteri
Log("Codice = " & Codice )
Codice = Codice.SubString(8) ‘Per semplicità , riduco a 8 il numero dei caratteri
Log("Codice = " & Codice )
Msgbox("Per ottenere la versione registrata comunicare i seguenti dati a:"&CRLF&CRLF&"[email protected]"&CRLF&CRLF& _
"Marca e modello del telefono cellulare Android ?"&CRLF&CRLF&"Codice Android ID = "&Codice& _
CRLF&CRLF&"Attenzione alle lettere minuscole o maiuscole !"&CRLF&CRLF&" "," ")
Msgbox("Per il corretto funzionamento del programma la dimensione del carattere deve essere impostata su 'normale'."," Importante")
End Sub
A questo punto utilizzo il codice di 8 caratteri per realizzare la password … e tutto funziona …
Problema risolto ? Forse no … perché Erel aveva giudicato inappropriato questo metodo, forse troppo elementare ? O forse perché questo Codice può variare dopo il Reset del telefono o dopo qualche aggiornamento … accidenti, non ricordo … cosa dite ?
Grazie
Gottrik
Tuttavia, grazie a B4A ho realizzato un’applicazione che proteggo tramite una Password calcolata partendo dal “Codice” del telefono in uso.
In passato avevo letto un post di Erel che consigliava il metodo seguente per acquisire il codice del telefono :
Sub GetDeviceId As String
Api = r.GetStaticField("android.os.Build$VERSION", "SDK_INT")
Log("Api = "& Api)
If Api < 9 Then
'Old device
If File.Exists(File.DirInternal, "__id") Then
Return File.ReadString(File.DirInternal, "__id")
Else
Dim id As Int
id = Rnd(0x10000000, 0x7FFFFFFF)
File.WriteString(File.DirInternal, "__id", id)
Return id
End If
Else
'New device
Return r.GetStaticField("android.os.Build", "SERIAL")
End If
End Sub
Ci ho capito poco, però tutto ok, l'ho utilizzata fino a qualche settimana fa, quando ho scoperto che Android 10 non accetta la suddetta procedura … ho fatto qualche ricerca e poi ho trovato un link che trattava lo stesso argomento :
https://www.b4x.com/android/forum/threads/111818/#content
Al quale Erel rispondeva, suggerendo la seguente procedura, da lui ritenuta ottimale :
The only valid id is this one: https://www.b4x.com/android/forum/threads/advertising-id.101050/#content
A questo punto devo dire che, tanto per cambiare non ci ho capito nulla, ma questo per me non è una novità …
Ho rinunciato …
Ho ripiegato su una vecchia procedura che avevo già utilizzato prima che Erel la dichiarasse inadeguata ma che, fortunatamente, viene accettata anche dai telefoni con sistema Android 10 …
Vedi qui sotto :
Sub Codice_Click
Dim P As Phone
Dim Codice As String
Codice = P.GetSettings("android_id") 'Codice alfanumerico di 16 caratteri
Log("Codice = " & Codice )
Codice = Codice.SubString(8) ‘Per semplicità , riduco a 8 il numero dei caratteri
Log("Codice = " & Codice )
Msgbox("Per ottenere la versione registrata comunicare i seguenti dati a:"&CRLF&CRLF&"[email protected]"&CRLF&CRLF& _
"Marca e modello del telefono cellulare Android ?"&CRLF&CRLF&"Codice Android ID = "&Codice& _
CRLF&CRLF&"Attenzione alle lettere minuscole o maiuscole !"&CRLF&CRLF&" "," ")
Msgbox("Per il corretto funzionamento del programma la dimensione del carattere deve essere impostata su 'normale'."," Importante")
End Sub
A questo punto utilizzo il codice di 8 caratteri per realizzare la password … e tutto funziona …
Problema risolto ? Forse no … perché Erel aveva giudicato inappropriato questo metodo, forse troppo elementare ? O forse perché questo Codice può variare dopo il Reset del telefono o dopo qualche aggiornamento … accidenti, non ricordo … cosa dite ?
Grazie
Gottrik
Last edited: