utilizo BroadcastReceiver para interceptar las llamadas entrantes en el teléfono Android como continuaciónAndroid: cómo detectar un número privado mediante programación
tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Bundle bundle = intent.getExtras();
String number = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
En el caso "número privado", he probado en dos dispositivos, se muestra el número como -1 en HTC Wildfire y -2 en Galaxy S. Revisé el android.telephony.PhoneNumberUtils
pero no pudo ayudarme.
¿Existe una función o una forma genérica de detectar un número privado en el teléfono Android?
No estoy seguro de que funcione para todos los dispositivos ya que no pude encontrar ningún documento al respecto. –
Estoy de acuerdo contigo. No sé si hay algún dispositivo que rompa esta regla de "menos de cero", pero por ahora parece funcionar para mí. Como no hay documentación y los dispositivos Android son numerosos en su implementación, voy a seguir esta regla hasta que reciba un informe de error de un usuario. No es lo mejor que se puede hacer, pero es lo único que se da a los hechos en este momento. –
@BaoLe El motivo por el que esto funciona se puede ver en la fuente de Android de CallLog.java. Aquí hay un enlace, http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android /4.0.3_r1/android/provider/CallLog.java#269 llamadas a las que se restringe se les asigna una constante, definida en com.android.internal.telephony.CallerInfo como -1 para Desconocido, -2 para privado y -3 para número de teléfono público – Sojurn