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