Io uso BroadcastReceiver di intercettare chiamate in arrivo sul telefono Android come di seguitoAndroid: come rilevare un numero privato a livello di codice
tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Bundle bundle = intent.getExtras();
String number = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Nel caso "numero privato", ho provato su due dispositivi, mostra il numero di -1 su HTC Wildfire e -2 su Galaxy S. Ho controllato il android.telephony.PhoneNumberUtils
ma non poteva aiutarmi.
Esiste una funzione o un modo generico per rilevare un numero privato sul telefono Android?
Non sono sicuro che funzioni per tutti i dispositivi poiché non sono riuscito a trovare alcun documento a riguardo. –
Sono d'accordo con te. Non so se ci sono dei dispositivi là fuori che infrangono questa regola "meno di zero", ma per ora sembra funzionare per me. Poiché non c'è documentazione e i dispositivi Android sono numerosi nella loro implementazione, ho intenzione di rispettare questa regola fino a quando non ricevo un rapporto di errore da un utente. Non è la cosa migliore da fare, ma l'unica cosa data i fatti in questo momento. –
@BaoLe Il motivo per cui questo funziona può essere visto la fonte Android di CallLog.java qui è un collegamento, http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android /4.0.3_r1/android/provider/CallLog.java#269 alle chiamate a cui viene assegnata una restrizione viene assegnata una costante, definita in com.android.internal.telephony.CallerInfo come -1 per Unknown, -2 per private e -3 per numero di telefono pubblico – Sojurn