Mostrar brinde complexo de BroadcastReceiver

Eu me pergunto se alguém pode me ajudar. Estou tentando exibir um elemento de brinde quando um SMS é recebido. Este brinde deve conter um layout que tenha uma imagem (ícone do SMS) e 2 textviews (remetente, mensagem)

Se eu chamar o método a seguir de uma atividade, isso funcionará como esperado ...

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();
}

No entanto, se eu tentar chamar o mesmo código da mesma maneira do meu SMSReceiver, recebo:

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

Alguém pode, por favor, aconselhar como eu posso fazer isso a partir de uma intenção. Eu suponho que o problema está de alguma forma relacionado ao cross-threading, no entanto, não tenho certeza de como proceder. Eu vi alguns exemplos on-line, mas eles parecem usar código obsoleto ou exibir apenas texto simples

Alguém pode por favor me apontar na direção correta

Muito Obrigado

questionAnswers(3)

yourAnswerToTheQuestion