Lire et afficher de message entrant texte android
Je suis nouveau sur le développement android.Je développe une petite application android. Dans mon application je veux récupérer les nouveaux sms et afficher ce message à l'utilisateur. Mon code ressemble à
//HellowordActivity.java
package com.example.helloword;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class HellowordActivity extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
String strMessage = "";
if (myBundle != null)
{
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
{
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody().toString();
strMessage += "\n";
}
//Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
Intent _intent = new Intent(context, PopupActivity.class);
_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
_intent.putExtra("strMessage", strMessage);
startActivity(_intent);
}
}
}
J'ai ajouté le récepteur et la permission Android Manifest.xml
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<receiver android:name=".HellowordActivity" >
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
<activity android:name=".PopupActivity" android:launchMode="singleTop" />
Je ne fais pas quelque chose dans la mise en page de la partie.Ce que je veux comme résultat, quand un nouveau message;
le texte du message affiché à l'utilisateur avec un simple popup.
Besoin d'Aide.. Merci...
quel est votre problème?
J'ai installé cette application sur mon appareil android. Quand un nouveau message arrive, il ne montre pas le texte du message(corps du message) c'est à dire dans mon code strMessage. Je veux afficher ce message à l'utilisateur...Toute suggestion.....
J'ai installé cette application sur mon appareil android. Quand un nouveau message arrive, il ne montre pas le texte du message(corps du message) c'est à dire dans mon code strMessage. Je veux afficher ce message à l'utilisateur...Toute suggestion.....
OriginalL'auteur nilkash | 2012-07-03
Vous devez vous connecter pour publier un commentaire.
Essayer ce que cela fonctionne pour moi, vous obtiendrez un toast montré à vous avec le contenu du message reçu:
L'AndroidManifest.xml
Utilisation DDMS d'envoyer des sms à votre émulateur via Telnet
ça marche pour moi, je ne peux pas ajouter un instantané, car il arrivera vite que je ne peux pas prendre un instantané sur émulateur
Merci K_Anas.. Ça fonctionne comme requis. Et je vous Remercie pour votre DDMS pointe ainsi.
vous êtes les bienvenus, marque de la réponse acceptée à aider les autres à connaître de la solution d'une telle approche
La diffusion recevier est déclenchée pour chaque incling message, non? Alors pourquoi sommes-nous en boucle pour plusieurs messages dans le récepteur (le message[i])?
OriginalL'auteur K_Anas
si vous souhaitez afficher un popup quand le SMS est Recived alors vous aurez besoin pour Créer une Activité avec
android:launchMode="singleTop"
:Dans manifast déclarer Activité:
De HellowordActivity BroadcastReceiver de début d'Activité:
Et dans votre
PopupActivity.class
:Vous pouvez aussi regarder ces Smspopup apps code source:
android-smspopup
sms-enhancer
essayez strMessage +=
messages[i].getMessageBody().toString();
au lieu destrMessage += messages[i].getMessageBody();
Merci Imran pour la réponse rapide. Comme vous l'avez dit-je créer une activité. Déclarer l'activité dans manifast et de définir l'activité dans PopupActivity.java.Mais quand j'ai essayé de démarrer l'activité de HellowordActivity il me donne l'erreur pour startActivity(intent) Erreur: la méthode startActivity(intent) la Destruction pour le type de HellowordActivity
plz éditer votre post avec la dernière version du code et manifast xml
voir mon edit répondre
OriginalL'auteur ρяσѕρєя K