Enviar o texto do projecto Android para o PCL com o MessagingCenter
Este é o meu primeiro post neste fórum, por isso qualquer dica sobre como tornar a pergunta mais compreensível/legível e assim por diante é apreciada.
o que estou a fazer?
Estou a fazer a minha primeira aplicação usando formulários Xamarin, e tenho dois projectos, PCL (biblioteca de classe portátil) e Android. O meu projecto Android recebe SMS de um número específico e guarda-o numa string. O que eu estou tentando alcançar é que usando MessagingCenter, enviar a string do meu projeto Android ao meu PCL.o meu problema:
Já vi muitos tópicos a este respeito, mas há algo que me está a escapar. E porque eu sou novo neste fórum eu não posso escrever comentários assim que eu tenho que criar minha própria pergunta. Deixa-me mostrar-te um pouco do Código. (parsedsms
é o texto que contém o SMS)
Leitor de SmsReceiver.cs (no meu projecto Android)
MessagingCenter.Send<SmsReceiver, string> (this, "ParsedSmsReceived", parsedsms);
Página da missão.xaml.cs (no meu projecto PCL)
MessagingCenter.Subscribe<SmsReceiver, string> (this, "ParsedSmsReceived",
(sender, arg) =>
{
string message = arg;
});
Este é um exemplo que encontrei em outro tópico aqui em Stackoverflow. Meu problema é que parsedsms
não pode ser acessado a partir do PCL. Como posso acessar a classe SmsReceiver a partir do meu PCL? Você não pode adicionar uma referência de PCL (porque é uma biblioteca, eu acho) para Android, apenas o contrário.
1
1 answers
Como @Jason escreveu nos comentários, a solução é usar Object
em vez de SmsReceiver
Assim:
Leitor de SmsReceiver.cs
MessagingCenter.Send<Object, string> (this, "ParsedSmsReceived", parsedsms);
Página da missão.xaml.cs
MessagingCenter.Subscribe<Object, string> (this, "ParsedSmsReceived",
(sender, arg) =>
{
string message = arg;
});
Isso funciona bem, mas se MessagingCenter realmente é o caminho certo para ir é outra questão. Como @Csharpest comentou usando DependencyService pode ser uma solução melhor.
1
Author: Amy, 2018-03-10 17:52:31