8
votes

Passez des données de la classe Broadcastructeur à une activité Android

Je développe une application Android et elle a une fonctionnalité que, si l'application est en cours d'exécution si je reçois un nouveau message SMS, le contenu de ce message doit être lu à l'aide de TextToStoSech. Je sais comment lire un texte en utilisant textelleech. J'ai écrit deux classes sur mon application. L'une est la principaultivité s'étend de l'activité et l'autre est SMSRecefeiver s'étend de BroadCastraCeiver. Lorsqu'un SMS est reçu tandis que la mainActivity est en cours d'exécution, je veux obtenir le contenu du message SMS en utilisant SMSReceiver et transmettez-la à la mainagivité, puis lisez-la à l'intérieur de la main-d'œuvre à l'aide de TextTostsech. Comment puis-je transmettre le contenu des SMS de SmsReceiver à ma maacalisation. Une copie de ma classe SMSRecefeiver est colle ci-dessous. XXX

}


1 commentaires

Peut-être que c'est ce dont vous avez besoin [implémentation de l'auditeur pour un radiodiffuseur] [1] [1]: Stackoverflow.com/questions/6661801/...


4 Réponses :


2
votes

Vous pouvez transmettre des données à l'aide d'intentions.

Dans votre BroadCastreceur, créez une intention: xxx

puis dans l'autre activité, vous pouvez obtenir ces valeurs telles que: < / p> xxx


5 commentaires

Cela jette une exception et ce n'est pas une bonne pratique de démarrer une activité du récepteur de diffusion. Vous pouvez éviter une exception en ajoutant un drapeau flag_activity_new_task à l'intention.


Merci d'avoir souligné cela. Ont ajouté la réponse à la réponse.


@Swayam comment réussir les données si j'ai utilisé l'intention en attente


@GowThamanm pouvez-vous s'il vous plaît partager un lien vers votre question avec le code de code? Je pourrai y répondre exactement alors. :)


@Swayam Stackoverflow.com/Questtions/48559566/... Merci monsieur ... Pouvez-vous vérifier ce que je faisais est correct ou non. bien pour je ne fais pas que ça fait ou pas



-1
votes

Utilisez le contexte et l'intention des arguments dans onreceive () xxx


0 commentaires

14
votes

Utiliser une interface est une solution qui a fonctionné pour moi.

dans votre BroadCastraVeiver strong> Mettez le texte suivant P>

@Override
public void onSmsReceived(String sender, String message) {
    //Insert your text to speech code here
}


5 commentaires

Et si mon somactivité et missedCallactivité sont identiques? Comment définir SMS auditeur?


@ Shubhama.'MissedCallactivity 'est votre radiodifférieur.


@Shubhama. Obtenir NULL dans l'objet à l'auditeur à chaque fois


Stackoverflow.com/Questtions/48559566/... Les gars vérifier le travail pour moi


SetonsmsReceedlistener, Setonsmslistener One Méthode Noms Différents



0
votes

Nous pouvons envoyer les données d'Onreceive à une autre activité à l'aide de LocalBroadcastManager. Cela signifie que vous diffusez à nouveau les données à l'aide du contexte

@override public vide inreceive (contexte contextuel, intention intention) { xxx

}


1 commentaires

merci mais comment obtenez-vous les données dans l'activité ??