Mostrar brindis complejo de BroadcastReceiver

Me pregunto si alguien puede ayudarme. Estoy intentando mostrar un elemento de brindis cuando se recibe un SMS. Este brindis debe contener un diseño que tenga una imagen (icono de SMS) y 2 vistas de texto (remitente, mensaje)

Si llamo al siguiente método desde una actividad, funciona como se espera ...

public void showToast(Context context, String name, String message) {
    LayoutInflater inflater = getLayoutInflater();
    View layout = inflater.inflate(R.layout.toast_sms,
                                   (ViewGroup) findViewById(R.id.toast_sms_root));

    TextView text = (TextView) layout.findViewById(R.id.toastsms_text);
    text.setText(message);

    Toast toast = new Toast(getApplicationContext());
    toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
    toast.setDuration(Toast.LENGTH_LONG);
    toast.setView(layout);
    toast.show();
}

Sin embargo, si trato de llamar al mismo código de la misma manera desde mi SMSReceiver, obtengo:

The method getLayoutInflater() is undefined for the type SmsReceiver
The method findViewById(int) is undefined for the type SmsReceiver
The method getApplicationContext() is undefined for the type SmsReceiver

¿Alguien puede por favor aconsejar cómo puedo hacer tihs de una intención? Supongo que el problema está relacionado de alguna manera con el enlace cruzado, sin embargo, no estoy seguro de cómo proceder. He visto un par de ejemplos en línea, pero parecen usar código desaprobado o solo mostrar texto simple

¿Alguien por favor me puede indicar la dirección correcta?

Muchas gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta