PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 23 → BroadcastReceiver pour récupérer les nouveaux SMS reçus
BroadcastReceiver pour récupérer les nouveaux SMS reçus
Débuté par Mouhi, 31 oct. 2018 23:29 - 1 réponse
Membre enregistré
19 messages
Posté le 31 octobre 2018 - 23:29
Bonjour :)

J'essaye de détecter la réception d'un nouveau SMS. J'ai créé une procédure globale avec le code Java nécessaire,
Je n'ai pas d'erreur mais lorsque je reçois un SMS rien ne se passe (j'ai débuggé avec Monitor.bat mais tout semble correcte).

Voici mon code Java :

import android.os.Bundle;
import android.content.*;
import android.telephony.*;

PUBLIC static void jSMSListener()
{
Context ctx = getContexteApplication();
IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
ctx.registerReceiver(mSmsInfoReceiver, mIntentFilter);
System.out.println("Print 1");
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver()
{
PUBLIC void onReceive(Context arg0, Intent intent)
{
System.out.println("Print 2");

appelProcedureWL("Proc_SMS");
}

PUBLIC void onDestroy()
{
getContexteApplication().unregisterReceiver(mSmsInfoReceiver);
}
};


Le premier println s'exécute correctement, donc le Listener (Receiver) se met en route correctement mais la méthode onReceive ne se déclenche jamais }:( en l’occurrence le deuxième println ne s'affiche pas (sans la moindre erreur dans le Monitor).

Bien sûr lors de la génération j'ai rajouté les permissions nécessaires :
android.permission.BROADCAST_SMS
android.permission.RECEIVE_SMS
android.permission.READ_SMS

Est-ce qu'il y a un génie qui peut me sauver :p ?

Merci infiniment.
Message modifié, 31 octobre 2018 - 23:30
Membre enregistré
19 messages
Posté le 01 novembre 2018 - 16:14
Hello,

J'ai adapté légèrement le code mais ça ne donne toujours rien :

PUBLIC static void jSMSListener()
{
Context ctx = getContexteApplication();
IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
BroadcastReceiver mReceiver = new BroadcastReceiver()
{
@Override
PUBLIC void onReceive(Context context, Intent intent)
{
System.out.println("Enfin !");
}
};
ctx.registerReceiver(mReceiver, mIntentFilter);
System.out.println("Print 1");
}


Helppppp :(