Registrar BroadcastReceiver para SMS entrantes
Cómo registrar BroadcastReceiver Para bloquear SMS entrantes
IntentFilter intentFilter = new IntentFilter(Intent."what should be here"); ctx.registerReceiver(outgoingReceiver, intentFilter);
- Extras de Android PendingIntent, no recibidos por BroadcastReceiver
- SMS Broadcast Receiver no recibe el mensaje de texto
- Android - Determinar el límite de texto SMS
- Bloquear SMS salientes
- Android - ¿Crear SMS de la API despreciada de PDU?
- Acerca del puerto SMS de Android
- SmsManager SendDataMessage en Android
- ¿Por qué obtengo NullPointerException al enviar un SMS en un HTC Desire, o lo que es SubmitPdu?
- Crear PDU para Android
- Prueba de unidad Android SMS Receiver
- Android - Consultando el ContentProvider de SMS?
- URL de SMS en Android
- Tarjeta dual sim enviar sms android
Pruebe lo siguiente:
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
Espero que esto ayude.
Declare el receptor en su AndroidManifest.xml:
<receiver android:name="com.example.YourSmsReceiver" android:exported="true" > <intent-filter android:priority="1000" > <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Espero que esto ayude, Yaron
Registre un receptor en su manifiesto con la mayor prioridad:
<receiver android:name=".SmsReceiver"> <intent-filter android:priority="9999"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
Cree la clase BroadcastReceiver:
public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { } }
Implementar método onReceive:
Bundle bundle = intent.getExtras(); if (bundle != null && bundle.containsKey("pdus")) { Object[] pdus = (Object[]) bundle.get("pdus"); SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdus[0]); String senderNumber = sms.getOriginatingAddress(); if( senderIsInBlackList(senderNumber)) { abortBroadcast(); } }
Debe comprobar el permiso
if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.RECEIVE_SMS}, 0); } else { // register sms receiver IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION); registerReceiver(smsReceiver, filter); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) { } else { // register sms receiver IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION); registerReceiver(smsReceiver, filter); } }