È possibile ottenere il numero di cellulare del dispositivo/SIM su cui è in esecuzione la mia applicazione Android?
Prima di tutto ottenere il numero di cellulare degli utenti è contro la politica etica, prima era possibile, ma ora secondo la mia ricerca non c'è una soluzione solida disponibile per questo, utilizzando alcuni codici è possibile ottenere il numero di cellulare, ma non vi è alcuna garanzia può essere che funzionerà solo in pochi dispositivi. Dopo molte ricerche ho trovato solo tre soluzioni ma non funzionano in tutti i dispositivi.
C'è il seguente motivo per cui non stiamo ottenendo.
- Nuovo dispositivo Android e nuova Sim Card non stanno memorizzando il numero di cellulare se il numero di cellulare non è disponibile nel dispositivo e nella sim allora come è possibile ottenere il numero, se qualche vecchia sim card ha il numero di cellulare allora usando Telephony manager possiamo ottenere il numero altrimenti restituirà il "null" o "" o "??????”
- TelephonyManager tel= (TelephonyManager)this.getSystemService(Context.
- TELEPHONY_SERVICE);
- String PhoneNumber = tel.getLine1Number();
Note:- I have test this solution in following device Moto x, Samsung Tab 4, Samsung S4, Nexus 5 and Redmi 2 prime but it doesn’t work every time it return empty string so conclusion is its useless
2. This method is working only in Redmi 2, but for this need to add read contact permission in manifest.
- String main_data[] = {"data1", "is_primary", "data3", "data2", "data1", "is_primary", "photo_uri", "mimetype"};
- Object object = getContentResolver().query(Uri.withAppendedPath(android.provider.ContactsContract.Profile.CONTENT_URI, "data"),
- main_data, "mimetype=?",
- new String[]{"vnd.android.cursor.item/phone_v2"},
- "is_primary DESC");
- String s1="";
- if (object != null) {
- do {
- if (!((Cursor) (object)).moveToNext())
- break;
- // This is the phone Number
- s1 = ((Cursor) (object)).getString(4);
- } while (true);
- ((Cursor) (object)).close();
- }
NOTE:- This is also not the guaranteed and efficient solution, I have test this solution in many device but it worked only in Redmi 2 prime which is dual sim device it gives me two mobile number first one is correct but the second one is not belong to my second sim it belong to my some old sim card which is i am not using.
3. In my research i have found earlier i was possible to get mobile number using WhatsApp account but now in new Whatsapp version doesn’t store users mobile number.
Conclusione:- Android non fornisce alcuna soluzione garantita per ottenere il numero di cellulare dell'utente programmaticamente.
Suggerimento:- 1. Se si desidera verificare il numero di cellulare dell'utente, chiedere all'utente di fornire il suo numero, utilizzando otp è possibile verificarlo.
2. Se si desidera identificare il dispositivo dell'utente, per questo si può facilmente ottenere il numero IMEI del dispositivo.
Articoli simili
- Quale dispositivo di gioco palmare consiglieresti per l'esecuzione di emulatori?
- Cosa devo fare se qualcuno ha violato la mia carta SIM? Come faccio a sapere che la mia carta SIM è stata violata?
- Come ottenere un numero di cellulare dal numero IMSI
- Un dispositivo di localizzazione GPS può funzionare senza scheda SIM? Qual è il principio su cui funziona?