Écouter envoi d'un SMS ou envoyés boîte à Android
Je développe une application qui permet de stocker tous les sms entrants et sortants dans un fichier texte dans la carte SD.
Je suis capable d'écouter les messages entrants à l'aide de récepteur de radiodiffusion. Je trouve qu'il est très difficile d'écouter les SMS sortants.
Je sais que dans une certaine mesure, d'un contenu observateur sur les envoyés boîte ou boîte d'envoi doit être réglé, mais je ne sais pas comment le faire.
Comment cela peut-il être fait?
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous devez enregistrer un contenu observateur... quelque chose comme ceci:
yourObserver
est un objet (new YourObserver(new Handler())
) qui pourrait ressembler à ceci:Alors, comment exactement ce que vous obtenez le contenu du SMS? Vous devez utiliser un
Cursor
:ContentObserver
?C'est mon approche pour résoudre ce
Créer un contenu observateur à l'intérieur
Créer l'observateur de la classe
J'ai ajouté une méthode smsChecker() pour vérifier si le nouveau message est juste le même que le dernier message
si je ne me trompe pas, nous utilisons "content://sms/envoyé" si nous ne voulons vérifier tous les messages envoyés ("content://sms/out" si nous ne voulons vérifier tous les messages à l'intérieur de la boîte d'envoi et "content://sms" si nous voulons vérifier TOUS les messages.
C'est ma version, qui a été vérifiée dans Android 6.0+
Placez ce code où l'observateur doit être activé
Cela suppose l'utilisation d'une activité. N'oubliez pas que vous aurez besoin d'un Cadre de référence pour l'appel
getContentResolver()
à partir de l'intérieur d'un service ou d'un récepteur.mContext
est un cadre de référence. Il semble que vous ne pouvez pas être familier avec le contexte. Je conseille de voir ma réponse à stackoverflow.com/a/14230055/461982 sur la façon d'obtenir un cadre de référence.J'ai vu ce qui va mal. c'est sur la ligne:
vous devez supprimer '/envoyer' et il suffit d'écrire "content://sms'
ses est déjà indiqué dans la ContentObserver à rechercher dans les messages sms envoyés.