Italian b4a - Leggere il proprio numero di telefono o il numero di serie del telefono

Atob4a

Member
Ciao a tutti :)
Vorrei riuscire a leggere il numero seriale oppure il numero di telefono per creare una sub di protezione dell'app.
Ho visto un po' di pagine in giro...ma a me non funzionano

B4X:
    Dim Phon As Phone
    
    Dim serialNo As String
      
    serialNo = Phon.GetDeviceId  '-> mi dice che non trova il membro GetDeviceId

Ho b4a v. 9.80 ed ho "fleggato" la libreria Phone (2.50)

Come posso fare ?
 

Atob4a

Member
Allora ragazzi :)
Ho fatto così,

B4X:
Dim p As Phone

Log(p.GetSettings("android_id"))

mi ritorna il seriale che probabilmente, per quello che serve a me, è ancora meglio. Infatti ho letto che a volte il numero di telefono non sempre è caricato sulla sim in automatico...ma a volte lo devi impostare tu...
Vediamo che succede
:)
 

Sagenut

Expert
Licensed User
Longtime User
Puoi leggere anche quì:
https://www.b4x.com/android/forum/threads/get-unique-id-for-user.124396/#content
Se non capisco male da Android 8 in avanti quel valore non cambia quando l'app viene disinstallata e reinstallata.
Se nelle versioni precedenti invece cambia ad ogni installazione potrebbe crearti qualche problema, a seconda di come lo utilizzi.
Per il momento è una soluzione.

Ti chiedo/propongo 2 cose fuori da questa discussione:
- perchè non usi l'ultima versione disponibile di B4A (non è obbligatorio)?
- immagino che quando posti qualcosa sul forum tu veda un avviso che ti informa che il tuo messaggio sarà visibile solo quando approvato da un Moderatore.
Per il secondo problema puoi fare una donazione (Quì) allo sviluppo di questi linguaggi e diventerai un Licensed User che eliminerà quella restrizione
Per quanto riguarda la versione di B4A non è obbligatorio usare l'ultima disponibile, però potresti valutare che alcune delle funzioni introdotte o bug corretti potrebbero farti comodo.
Eventualmente puoi anche installare più versioni di B4A semplicemente mettendole ognuna in una propria cartella (tipo B4A-980, B4A-1050......) se hai paura di problemi di compatibilità o altro.
Tieni presente che i miei sono solo consigli/osservazioni. ;)
Buon Lavoro!
 

Star-Dust

Expert
Licensed User
Longtime User
Non è possibile nessuno dei due. Nel caso del numero di telefono riceverai un campo vuoto. Nel caso di Andoid_ID otterrai come correttamente ha spiegato @Sagenut un numero diverso a ogni installazione sullo stesso dispositivo, in alcune versioni potresti ricevere un campo vuoto.

Due anni fa ho trovato un modo per identificare il telefono con l'ID di Google per la pubblicità.

Erel ha reso possibile questo, traducendo il codice per B4A:
 

Atob4a

Member
Puoi leggere anche quì:
https://www.b4x.com/android/forum/threads/get-unique-id-for-user.124396/#content
Se non capisco male da Android 8 in avanti quel valore non cambia quando l'app viene disinstallata e reinstallata.
Se nelle versioni precedenti invece cambia ad ogni installazione potrebbe crearti qualche problema, a seconda di come lo utilizzi.
Per il momento è una soluzione.

Ti chiedo/propongo 2 cose fuori da questa discussione:
- perchè non usi l'ultima versione disponibile di B4A (non è obbligatorio)?
- immagino che quando posti qualcosa sul forum tu veda un avviso che ti informa che il tuo messaggio sarà visibile solo quando approvato da un Moderatore.
Per il secondo problema puoi fare una donazione (Quì) allo sviluppo di questi linguaggi e diventerai un Licensed User che eliminerà quella restrizione
Per quanto riguarda la versione di B4A non è obbligatorio usare l'ultima disponibile, però potresti valutare che alcune delle funzioni introdotte o bug corretti potrebbero farti comodo.
Eventualmente puoi anche installare più versioni di B4A semplicemente mettendole ognuna in una propria cartella (tipo B4A-980, B4A-1050......) se hai paura di problemi di compatibilità o altro.
Tieni presente che i miei sono solo consigli/osservazioni. ;)
Buon Lavoro!

Grazie Sagenut :)
Si provvederò quanto prima ad aggiornare B4A all'ultima versione e sicuramente farò anche una donazione perchè è davvero incredibile la potenza/semplicità di questo linguaggio.
Ti ringrazio :)
 

Atob4a

Member
Allora ragazzi :)
Ho fatto così,

B4X:
Dim p As Phone

Log(p.GetSettings("android_id"))

mi ritorna il seriale che probabilmente, per quello che serve a me, è ancora meglio. Infatti ho letto che a volte il numero di telefono non sempre è caricato sulla sim in automatico...ma a volte lo devi impostare tu...
Vediamo che succede
:)
Aggiungo che l'ho provato su due cellulari identici (Samsun J6 Plus) il mio e quello di mia moglie (comprati lo stesso giorno) e mi ha dato due ID diversi.
Comunque al di la del metodo che ho usato, secondo voi come posso fare per proteggere la mia applicazione?
In vb6 io prendevo il seriale dell'harddisk...applicavo una formula ed il risultato di quella formula era la chiave che sbloccava tutto...
Ho letto dell' ID di Google...ma se il cellullare non fosse connesso ad internet ? Perchè la mia app nonnecessità di internet...
Qui come potrei fare ?
 
Top