2010-04-24 9 views
4

Je souhaite être en mesure de contrôler les messages texte entrants. Mon application est toujours sur une version "proof of concept" et j'essaie d'apprendre la programmation Android comme je vais.Comment intercepter un message texte entrant

D'abord, mon application doit capturer les messages texte entrants. Et si le message provient d'un nombre connu, alors faites-le. Si ce n'est pas le cas, envoyez le message car rien n'est arrivé à l'application de messagerie texte par défaut.

Je n'ai aucun doute que cela peut être fait, mais j'ai encore quelques inquiétudes et je vois quelques pièges à la façon dont les choses sont faites sur Android. Donc, obtenir le message texte incomming pourrait être assez facile - sauf quand il y a d'autres applications de messagerie installées et peut-être l'utilisateur veut avoir des messages texte normaux pour apparaître sur l'un d'entre eux - et il le fera, après que mon application a eu un coup d'oeil en premier.

Comment être sûr que mon application reçoive la première sélection de messages texte entrants? Ensuite, j'ai besoin d'envoyer la plupart des messages texte à n'importe quelle autre application de messagerie texte que l'utilisateur a choisie afin que l'utilisateur puisse réellement lire le message dont mon application n'a pas besoin. Étant donné qu'Android utilise des intentions relatives au mieux, je ne vois pas comment appliquer mon application pour avoir un aperçu de tous les SMS entrants, puis l'arrêter ou l'envoyer à l'application de messagerie texte par défaut. ..

Répondre

0

retriving tous les messages entrants est tout simplement la mise en place d'écoute, vous pouvez le faire facilement see here

et après cela, son bien si vous êtes à faire phase rien, mais si vous voulez éviter sms aller dans l'application de messagerie native, il n'est pas conseillé d'empêcher l'utilisateur.

mieux vaut attendre un certain temps, puis supprimer la même chose de la base de données SMS.

+0

Thanx. Mais ce que j'essaye de faire est de ma demande d'envoyer un message texte à un service - disons un service bancaire. Et pour intercepter tous les messages provenant du même numéro. Ainsi, lorsque l'utilisateur clique sur un bouton dans mon application pour obtenir la balance, il envoie un message à un numéro et mon application intercepte le message de retour. Il est donc très important que mon application obtienne la première sélection des messages entrants et qu'elle puisse passer à travers les messages qui ne proviennent pas d'un nombre connu. Ma préoccupation ici est que les intentions ne sont pas un absolu et peuvent donc rendre cela impossible. – Espen

2

Espen,

La réponse à cette question est en plusieurs parties. Comprenez d'abord que notre entreprise a résolu ce problème, mais la solution est temporairement propriétaire, donc je vais répondre à ce que je peux sans causer de conflit ici ou pour mon entreprise.

1) Vous ne pouvez jamais vous assurer que votre application est sélectionnée. Ce que vous pouvez faire, c'est rendre votre traitement "assez rapide", ce qui n'a pas d'importance.

2) Les intentions sont un absolu si vous forcez le problème. Notre société utilise un concept appelé routage d'intention. Cela garantit que les données sont envoyées à l'application appropriée. L'idée la plus simple est que lorsque vous recevez le SMS, vous créez une nouvelle intention (pas la même) et l'envoyez directement à la classe. Cela a quelques considérations spéciales, mais devrait vous donner une direction. Malheureusement, sans violer la confiance de mon entreprise ou les politiques de stackoverflow, je ne peux plus le dire publiquement tant que la solution ne sera pas rendue publique (dans le mois prochain).

FuzzicalLogic

+0

Salut FuzzialLogic, s'il vous plaît donnez-moi ce code-échantillon quand il est publié, ça sonne vraiment interessant ..! Et ça pourrait être une bonne avance sur mon application! – safari

+0

Safari, c'est en fait une solution d'api maintenant. Nous nous sommes convertis à API/App afin de faire un tas de choses bien. Si vous êtes intéressé par ce que nous faisons, vous pouvez nous aimer sur Facebook ou nous suivre sur LinkedIn. La société est nTouch Software (sur Facebook il faut avoir un N majuscule). C'est à peu près tout ce que je peux dire sans en faire une publicité que ni moi ni StackOverflow ne voulons. –

+0

(Je n'ai mis que le commentaire ci-dessus, parce que je n'ai trouvé aucun moyen d'envoyer un message direct sans l'email de l'utilisateur publié.) :(N'hésitez pas à supprimer le commentaire, car je suis sûr qu'il mérite :) –

Questions connexes