Komplexen Toast von BroadcastReceiver anzeigen

Ich frage mich, ob mir jemand helfen kann. Ich versuche, ein Toast-Element anzuzeigen, wenn eine SMS empfangen wird. Dieser Toast sollte ein Layout mit einem Bild (SMS-Symbol) und zwei Textansichten (Absender, Nachricht) enthalten.

Wenn ich die folgende Methode aus einer Aktivität aufrufe, funktioniert sie wie erwartet ...

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

Wenn ich jedoch versuche, denselben Code auf dieselbe Weise von meinem SMSReceiver aus aufzurufen, erhalte ich Folgendes:

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

Kann jemand bitte raten, wie ich tihs von einer Absicht tun kann. Ich gehe davon aus, dass das Problem mit dem Cross-Threading zusammenhängt, bin mir jedoch nicht sicher, wie ich vorgehen soll. Ich habe einige Beispiele online gesehen, aber sie scheinen entweder veralteten Code zu verwenden oder nur einfachen Text anzuzeigen

Kann mich bitte jemand in die richtige Richtung weisen

Danke vielmals

Antworten auf die Frage(3)

Ihre Antwort auf die Frage