Salve, mi scuso in anticipo … non sono esperto
Ho realizzato un’applicazione che distribuisco con una password.
Per definire di volta in volta una diversa password riconducibile di volta in volta ad un singolo dispositivo Android ho provato ad utilizzare questi due metodi:
Primo metodo:
Sub Pippo ()
Dim Codice As String
Dim P As Phone
Codice = P.GetSettings("android_id")
‘Msgbox (Codice,"Android ID = ")
End Sub
Con il mio Samsung S3 ottengo questo Codice : 5f1dca2342e00ad1
L’applicazione, configurata sul Codice 5f1dca2342e00ad1 legge il codice del telefono e se questo coincide prosegue, altrimenti visualizza il messaggio “Applicazione non registrata ecc. ecc. “ e si ferma.
Forse il procedimento è un po’ macchinoso perché ogni volta io devo creare una applicazione personalizzata, però a me sta bene così … non è un problema.
Questo sistema però ha un difetto : il Codice cambia tutte le volte che viene eseguito il “reset” del telefono …
Allora ho provato questo secondo metodo ( suggerito da Erel … ),che ho applicato senza pormi molte domande, anche perché ci ho capito poco …
Codice = (GetDeviceId)
Sub GetDeviceId As String
Api = r.GetStaticField("android.os.Build$VERSION", "SDK_INT")
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
Con questo secondo metodo ottengo, sempre con il mio Samsung S3, il Codice = 479000ead176113c , che è poi lo stesso che appare in fase di compilazione tramite in nostro validissimo b4a ( grazie Erel ), quindi tutto sembra OK :
Installing file to device. 6.91
Device serial: 479000ead176113c
Completed successfully.
Ho perciò deciso di utilizzare questo secondo metodo , che forse potrebbe anche avere il vantaggio di non subire il cambiamento del codice tutte le volte che viene eseguito il “reset” del telefono, ma questo non ho potuto ancora verificarlo …
A questo punto … sorpresa !
Esistono dei telefoni strani (?) , per esempio “ Elephone P6000 ” che, forse perché prodotti da fabbricanti che non hanno la certificazione Android ( può essere ? ) , con il secondo metodo sopra descritto visualizzano sempre questo Codice 0123456789ABCDEF , uguale per tutti i telefoni !
Ora, se diversi telefoni dichiarano lo stesso codice … addio Password … con grande soddisfazione di tutti quelli che pretendono che un’applicazione sia gratuita per il solo fatto che sia stata progettata da qualcun altro … e se chiedi qualcosa in cambio del tuo lavoro, si arrabbiano pure …
Per concludere, anche a voi risulta l’esistenza di telefoni che dichiarano sempre lo stesso codice 0123456789ABCDEF ?
Oppure ho preso lucciole per lanterne …
Grazie
p.s
Purtroppo non ho potuto verificare se, utilizzando il primo metodo, questi “strani” telefoni dichiarano tutti il medesimo codice …
Ho realizzato un’applicazione che distribuisco con una password.
Per definire di volta in volta una diversa password riconducibile di volta in volta ad un singolo dispositivo Android ho provato ad utilizzare questi due metodi:
Primo metodo:
Sub Pippo ()
Dim Codice As String
Dim P As Phone
Codice = P.GetSettings("android_id")
‘Msgbox (Codice,"Android ID = ")
End Sub
Con il mio Samsung S3 ottengo questo Codice : 5f1dca2342e00ad1
L’applicazione, configurata sul Codice 5f1dca2342e00ad1 legge il codice del telefono e se questo coincide prosegue, altrimenti visualizza il messaggio “Applicazione non registrata ecc. ecc. “ e si ferma.
Forse il procedimento è un po’ macchinoso perché ogni volta io devo creare una applicazione personalizzata, però a me sta bene così … non è un problema.
Questo sistema però ha un difetto : il Codice cambia tutte le volte che viene eseguito il “reset” del telefono …
Allora ho provato questo secondo metodo ( suggerito da Erel … ),che ho applicato senza pormi molte domande, anche perché ci ho capito poco …
Codice = (GetDeviceId)
Sub GetDeviceId As String
Api = r.GetStaticField("android.os.Build$VERSION", "SDK_INT")
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
Con questo secondo metodo ottengo, sempre con il mio Samsung S3, il Codice = 479000ead176113c , che è poi lo stesso che appare in fase di compilazione tramite in nostro validissimo b4a ( grazie Erel ), quindi tutto sembra OK :
Installing file to device. 6.91
Device serial: 479000ead176113c
Completed successfully.
Ho perciò deciso di utilizzare questo secondo metodo , che forse potrebbe anche avere il vantaggio di non subire il cambiamento del codice tutte le volte che viene eseguito il “reset” del telefono, ma questo non ho potuto ancora verificarlo …
A questo punto … sorpresa !
Esistono dei telefoni strani (?) , per esempio “ Elephone P6000 ” che, forse perché prodotti da fabbricanti che non hanno la certificazione Android ( può essere ? ) , con il secondo metodo sopra descritto visualizzano sempre questo Codice 0123456789ABCDEF , uguale per tutti i telefoni !
Ora, se diversi telefoni dichiarano lo stesso codice … addio Password … con grande soddisfazione di tutti quelli che pretendono che un’applicazione sia gratuita per il solo fatto che sia stata progettata da qualcun altro … e se chiedi qualcosa in cambio del tuo lavoro, si arrabbiano pure …
Per concludere, anche a voi risulta l’esistenza di telefoni che dichiarano sempre lo stesso codice 0123456789ABCDEF ?
Oppure ho preso lucciole per lanterne …
Grazie
p.s
Purtroppo non ho potuto verificare se, utilizzando il primo metodo, questi “strani” telefoni dichiarano tutti il medesimo codice …