PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → [Android] Lecture de SMS - Action sur arrivée nouveau sms - Lecture de sms provenant d'un numéro spécifié.
[Android] Lecture de SMS - Action sur arrivée nouveau sms - Lecture de sms provenant d'un numéro spécifié.
Started by Cezame, Jul., 01 2014 6:06 PM - 47 replies
Posted on July, 01 2014 - 6:06 PM
Bonjour,

Pour les besoins d'une application j'aurais besoin de lancer une commande lorsqu'un nouvel SMS arrive sur l'appareil.

Est ce possible avec WM19?

D'autre part je souhaiterai lire les sms envoyés par un numéro spécifié. Mais seulement provenant de ce numéro.

Aujourd'hui grace aux commandes du wla,guage je suis obligé de lire l'ensemble des messages à chaque fois ce qui peut être assez long suivant le nombre de messages sur l'appareil.

D'avance merci pour votre aide.

Cordialement

Cezame
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 02 2014 - 9:12 AM
bonjour,

c'est possible en effet.
avec les intents java sms_received.

import android.content.*;
import android.telephony.*;

public static void RecoitSMS() {
final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

public void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
String messages = "";
Object[] smsExtra = (Object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
// SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
// String body = sms.getMessageBody().toString();
// String address = sms.getOriginatingAddress();

appelProcedureWL("AffecteSms");
}

}

public void onDestroy() {
getActiviteEnCours().unregisterReceiver(mSmsInfoReceiver);
}

};
Posted on July, 02 2014 - 10:37 AM
floman321 a écrit :
bonjour,

c'est possible en effet.
avec les intents java sms_received.

import android.content.*;
import android.telephony.*;

public static void RecoitSMS() {
final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

public void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
String messages = "";
Object[] smsExtra = (Object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
// SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
// String body = sms.getMessageBody().toString();
// String address = sms.getOriginatingAddress();

appelProcedureWL("AffecteSms");
}

}

public void onDestroy() {
getActiviteEnCours().unregisterReceiver(mSmsInfoReceiver);
}

};


Bonjour et merci pour ta réponse rapide.

Comment intégrer ton code simplement sous WM19?

D'avance merci

Cezame
Posted on July, 02 2014 - 11:07 AM
Pour préciser ma réponse je demandais ou intégrer la procédure java dans le code?

L'intégrer dans le code d'initialisation de ma fenêtre permettra de lancer la procédure "AffecteSMS" à chaque arrivée de sms sur mon appareil?

Encore merci pour ton aide

Cezame
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 02 2014 - 12:08 PM
facile 8) ! tu créer une procédure globale puis en met ton code en java (en haut a gauche tu as une option dans le code) et tu colle le code.
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 02 2014 - 12:15 PM
n'oubliet pas de rajouter la permission RECEIVE_SMS lors de création de l'APK (exécutable)
Posted on July, 02 2014 - 12:24 PM
J'avais compris cette étape la...

Ensuite je n'ai qu'à lancer la procédure par exemple das e code d'initialisation et la procédure "AffecteSMS" sera lancée automatiquement à chaque réception de nouvel sms?

J'ai une erreur de compilation sur le code que tu m'as transmis...

"; expected"

Je ne voies pas ou ce ; manque?

Encore meri

Cezame
Posted on July, 02 2014 - 12:42 PM
Voici le code que j'ai utilisé dans une procédure Globale

import android.content.*;
import android.telephony.*;

PUBLIC static void RecoitSMS() {
final string SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

PUBLIC void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
string messages = "";
object[] smsExtra = (object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body = sms.getMessageBody().toString();
string Address = sms.getOriginatingAddress();
appelProcedureWL_String("TraiteSmsEntrant" , Address , body);
}

}

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

};


La procédure appellée est TraiteSMSEntrant à laquelle je passe en paramètre le numéro d'appel et le message reçu.

J'ai une erreur de compilation " ; expected" mais je ne trouves pas ou...

Autre question est il possible de supprimer le sms suivant un traitement dans la procédure TraiteSMSEntrant.

La procédure renvoyant vrai ou faux si le message doit être supprimé ou pas.

Encore merci

Cezame
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 02 2014 - 1:56 PM
oui code d'init de la fenetre ou projet
Posted on July, 02 2014 - 2:20 PM
Je n'arrive toujours pas à trouver l'erreur "; expected" dans mon code...

PUBLIC static void _ReceptionSMS()
// Résumé : Lance la procédure TraiteSMSEntrant à chaque sms entrant
// Syntaxe :
// _ReceptionSMS ()
//
// Paramètres :
//Aucun
// Valeur de retour :
// Aucune
//
// Exemple :
// Indiquez ici un exemple d'utilisation.
import android.content.*;
import android.telephony.*;

PUBLIC static void RecoitSMS() {
final string SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

PUBLIC void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
string messages = "";
object[] smsExtra = (object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body = sms.getMessageBody().toString();
string Address = sms.getOriginatingAddress();
appelProcedureWL_String("TraiteSmsEntrant" , Address , body);
}

}

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

};


Est ce que l'appelProcedureWL_String est correct ? Je souhaite passer en paramètre le numéro appelant et le message.

Est il possible que la procédure "TraiteSMSentrant" renvoie vrai ou faux et permette la suppression du message si vrai?

Encore merci pour ton aide.

Cezame
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 02 2014 - 3:49 PM
http://doc.pcsoft.fr/fr-FR/?9000108&name=particularites_des_applications_pour_android

import android.content.*;
import android.telephony.*;

PUBLIC static void RecoitSMS() {
final string SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

PUBLIC void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
string messages = "";
object[] smsExtra = (object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
//SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
//String body = sms.getMessageBody().toString();
//String address = sms.getOriginatingAddress();

appelProcedureWL("AffecteSms");


}

}

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

};
Posted on July, 02 2014 - 4:34 PM
Je n'arrive pas à trouver l'erreur de ; dans le code que tu m'as envoyé...

Du coup je n'arrive pas à tester la solution, tu voies l'erreur?

D'avance merci

Cezame
Posted on July, 02 2014 - 5:49 PM
En utilisant le dernier code que tu m'as envoyé j'ai les erreurs suivantes

Erreur retournée :
src\com\cezame\gps\wdgen\GWDCPCOL_ProceduresGlobales.java:1041: error: <identifier> expected
PUBLIC static void RecoitSMS() {
^
src\com\cezame\gps\wdgen\GWDCPCOL_ProceduresGlobales.java:1049: error: <identifier> expected
PUBLIC void onReceive(Context arg0, Intent intent) {
^
src\com\cezame\gps\wdgen\GWDCPCOL_ProceduresGlobales.java:1049: error: invalid method declaration; return type required
PUBLIC void onReceive(Context arg0, Intent intent) {
^
src\com\cezame\gps\wdgen\GWDCPCOL_ProceduresGlobales.java:1068: error: <identifier> expected
PUBLIC void onDestroy() {
^
src\com\cezame\gps\wdgen\GWDCPCOL_ProceduresGlobales.java:1068: error: invalid method declaration; return type required
PUBLIC void onDestroy() {
^
5 errors

Je n'y comprends plus rien...
Registered member
92 messages
Popularité : +2 (2 votes)
Registered member
36 messages
Posted on July, 03 2014 - 11:19 AM
Je crois qu'il faut écrire les "PUBLIC" en minuscule comme ceci : public
Posted on July, 03 2014 - 3:20 PM
Les public sont en minuscule... C'est lorsqu'on affiche le code comme du Wlangage qu'ils apparaisssent en majuscules sur le message.

Merci pour ton aide tout de même.
Posted on July, 03 2014 - 3:48 PM
floman321 a écrit :
> https://dl.dropboxusercontent.com/u/2279433/essai.java

Je télécharge Eclipse pour visualiser le code...

Encore merci

Cezame
Posted on July, 03 2014 - 4:15 PM
floman321 a écrit :
> https://dl.dropboxusercontent.com/u/2279433/essai.java

En copiant ce code dans l'éditeur dans une procédure globale Java voici le message d'erreur que j'obtiens...

Ligne de commande : "C:\Program Files\Java\jdk1.7.0_51\bin\javac.exe" -encoding UTF-16LE -nowarn -source 1.5 -target 1.5 -d bin\classes -bootclasspath "C:\Android\sdk\platforms\android-18\android.jar" gen\com\cezame\gps\*.java src\com\cezame\gps\wdgen\*.java gen\com\google\android\gms\*.java -classpath "libs;bin\classes;libs\android-support-v4.jar;libs\google-play-services.jar"


Erreur retournée :
src\com\cezame\gps\wdgen\GWDCPCOL_ProceduresGlobales.java:879: error: cannot find symbol
Bundle extras = intent.getExtras();
^
symbol: class Bundle
1 error

Ce code est bien compilé sous WM de ton côté?

Je n'y comprends plus rien. Encore merci.

Quelqu'un aurait une idée du pourquoi cette erreur générée?

D'avance merci

Cezame
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 04 2014 - 8:04 AM
il faut rajouter un
import android.os.Bundle;
premierer ligne
Posted on July, 04 2014 - 4:49 PM
Bonjour et encore merci pour ton aide.

J'ai ajouter la ligne au départ à ton code et maintenant plus d'erreur de compilation.

J'ai ajouté dans le code d'initialisation de ma fenetre principale
RecoitSMS()


Lorsqu'un SMS arrive sur le téléphone il ne se passe rien la procédure n'est pas lancée par la commande

appelProcedureWL("TraiteSMSEntrant");


J'ai juste mis un le code
Info("sms entrant")

dans la procédure...

Merci d'avance pour votre aide
Posted on July, 06 2014 - 1:06 PM
Bonjour Cezame,

J'ai testé ce code de floman321 et ça marche très bien.
Voici les étapes :

1. Créer projet un reception_sms.
2. Dans le code de la fenêtre principale, Déclarations globales, ajouter le code
RecoitSMS()


3. Créer 1 procedure globale ( RecoitSMS() en java ) :
Attention ne pas mettre de nom de procédure avant les import.* comme c'est le cas en wlangage

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

PUBLIC static void RecoitSMS() {
final string SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

PUBLIC void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
string messages = "";
object[] smsExtra = (object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
//SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
//String body = sms.getMessageBody().toString();
//String address = sms.getOriginatingAddress();

appelProcedureWL("AffecteSms");


}

}

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

};


4. Créer une procédure globale ( AffecteSms() en WLangage )

Procedure AffecteSms()
Info("sms entrant")


5. Au moment de la génération de l'application Android, Ajouter la permission suivante
android.permission.RECEIVE_SMS Permet à une application de contrôler les messages sMS entrants, d'enregistrer ou d'effectuer des traitements.


Je pense que l'erreur dans ton code est d'avoir ajouté la ligne

PUBLIC static void _ReceptionSMS()

dans ta procedure RecoitSMS


Cdt

Mohamed
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 07 2014 - 8:30 AM
Posted on July, 07 2014 - 10:24 AM
Bonjour,
Merci floman321 pour ce code qui fonctionne très bien pour les SMS.
Aurais-tu un exemple de code java pour les "incoming calls" et son intégration dans un projet windev mobile?
Merci d'avance

Mohamed
Registered member
92 messages
Popularité : +2 (2 votes)
Posted on July, 07 2014 - 11:16 AM
même code mais avec TelephonyManager.ACTION_PHONE_STATE_CHANGED


static BroadcastReceiver mSurveilleAppelEntrant = new BroadcastReceiver(){
public void onReceive(Context arg0, Intent intent) {
final String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
final String incomingState = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
Posted on July, 07 2014 - 1:51 PM
Merci beaucoup :)
Je vais tester le code ce soir.

Cdt

Mohamed
Posted on July, 07 2014 - 5:38 PM
Bonjour,

Je viens de tester le code après recompilation de mon projet et ça fonctionne maintenant.

Encore merci pour ton aide.

J'ai maintenant modifié le code pour traiter le sms entrant.

Je souhaiterai pouvoir supprimer le sms suivant le traitement fait dans AffecteSMS.

J'ai donc modifié la procédure Java comme suit...


for ( int i = 0; i < smsExtra.length; i++ )
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body = sms.getMessageBody().toString();
string Address = sms.getOriginatingAddress();

appelProcedureWL_boolean("AffecteSms",Address,body);


}


AffecteSMS renvoie vrai si le sms doit être supprimé et faux sinon.

Quel code java permet de supprimer le sms et comment récupérer la valeur vrai ou faux renvoyée par AffecteSms?

D'avance merci

Cezame
Posted on July, 08 2014 - 12:53 PM
Bonjour et encore merci à tous pour votre aide.

J'avance dans la gestion d'email entrant je souhaiterai pouvoir sous certaines conditions supprimer un email entrant (provenant d'un numéro par exemple).

Je cherche la fonction java qui complèterai mon code et me renverrai l'ID du sms.

Quelqu'un aurait cette fonction?

D'avance merci

Cezame
Posted on July, 10 2014 - 12:04 PM
Bonjour à tous,

J'ai bien avancé sur mon problème d'interception de sms entrant.

Je cherche maintenant à pouvoir supprimer le sms après traitement.

N'étant pas un spécialiste Java (loin de la) je m'adresse aux spécialistes...

Voici mon code :

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

PUBLIC static void RecoitSMS() {
final string SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver, new IntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver = new BroadcastReceiver(){

PUBLIC void onReceive(Context arg0, Intent intent) {

Bundle extras = intent.getExtras();
string messages = "";
object[] smsExtra = (object[]) extras.get( "pdus" );

for ( int i = 0; i < smsExtra.length; i++ )
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body = sms.getMessageBody().toString();
string Address = sms.getOriginatingAddress();

boolean DeleteSMS = appelProcedureWL_boolean("AffecteSms",Address,body);
IF (DeleteSMS = True){
appelProcedureWL("SupprimeSms");

}

}

}

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

};


Afin de supprimer le message j'aurais besoin de la commande Java me renvoyant l'ID du sms entrant. Ceci en modifiant le code comme suit :
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body = sms.getMessageBody().toString();
string Address = sms.getOriginatingAddress();
int Idsms = sms. * Commande manquante
boolean DeleteSMS = appelProcedureWL_boolean("AffecteSms",Address,body);
IF (DeleteSMS = True){
appelProcedureWL("SupprimeSms",Idsms);

}


Ou alors la commande permettant la suppression du message en java comme suit...

SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body = sms.getMessageBody().toString();
string Address = sms.getOriginatingAddress();

boolean DeleteSMS = appelProcedureWL_boolean("AffecteSms",Address,body);
IF (DeleteSMS = True){
*Commande Java suppression sms*

}


Merci d'avance pour votre aide

Cezame
Posted on January, 12 2017 - 11:37 AM
I tried your code but i receive this kind of errors :

Erreur retournée :
src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java:70: error: cannot find symbol
final string SMS_RECEIVED="android.provider.Telephony.SMS_RECEIVED";
^
symbol: class string
location: class GWDCPGenerale
src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java:80: error: cannot find symbol
string messages="";
^
symbol: class string
src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java:81: error: cannot find symbol
object[]smsExtra= (object[])extras.get("pdus");
^
symbol: class object
src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java:81: error: cannot find symbol
object[]smsExtra= (object[])extras.get("pdus");
^
symbol: class object
src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java:86: error: cannot find symbol
string body=sms.getMessageBody().toString();
^
symbol: class string
src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java:87: error: cannot find symbol
string Address=sms.getOriginatingAddress();
^
symbol: class string
Note: src\com\masociete\agenda_sms\wdgen\GWDCPGenerale.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
6 errors

the code that i tried is :


public static void RecoitSMS() {
final string SMS_RECEIVED="android.provider.Telephony.SMS_RECEIVED";
//SMS_RECEIVED_ACTION
getActiviteEnCours().registerReceiver(mSmsInfoReceiver,newIntentFilter(SMS_RECEIVED));
}

static BroadcastReceiver mSmsInfoReceiver=new BroadcastReceiver(){

public void onReceive(Context arg0,Intent intent) {

Bundle extras=intent.getExtras();
string messages="";
object[]smsExtra= (object[])extras.get("pdus");

for(int i=0;i<smsExtra.length;i++ )
{
SmsMessage sms=SmsMessage.createFromPdu((byte[])smsExtra[i]);
string body=sms.getMessageBody().toString();
string Address=sms.getOriginatingAddress();


}

}

public void onDestroy() {
getActiviteEnCours().unregisterReceiver(mSmsInfoReceiver);
}

};

I tested it in a global brocedure and changed it to jave procedure, do i have to create a class?
Posted on April, 18 2017 - 12:16 PM
Je ne comprends pas pourquoi j'ai cette erreur.


Echec de la création de l'application Android <T:\Commun\Sources\Windev Mobile\BlockSMS\Exe\BlockSMS.apk>.


Ligne de commande : "C:\Program Files (x86)\Java\jdk1.8.0_112\bin\java.exe" "-Dorg.gradle.appname=T:\Commun\Sources\Windev Mobile\BlockSMS\Android\Generation" -classpath "C:\WinDev Mobile 21 32\Personnel\Android\Gradle\lib\gradle-launcher-2.8.jar" org.gradle.launcher.GradleMain assembleDebug -b build.gradle


Erreur retournée :
T:\Commun\Sources\Windev Mobile\BlockSMS\Android\Generation\src\com\masociete\blocksms\wdgen\GWDCPCOL_SMS.java:94: error: <identifier> expected
PUBLIC static void RecoitSMS() {
^
T:\Commun\Sources\Windev Mobile\BlockSMS\Android\Generation\src\com\masociete\blocksms\wdgen\GWDCPCOL_SMS.java:101: error: <identifier> expected
PUBLIC void onReceive(Context arg0, Intent intent) {
^
T:\Commun\Sources\Windev Mobile\BlockSMS\Android\Generation\src\com\masociete\blocksms\wdgen\GWDCPCOL_SMS.java:101: error: invalid method declaration; return type required
PUBLIC void onReceive(Context arg0, Intent intent) {
^
T:\Commun\Sources\Windev Mobile\BlockSMS\Android\Generation\src\com\masociete\blocksms\wdgen\GWDCPCOL_SMS.java:123: error: <identifier> expected
PUBLIC void onDestroy() {
^
T:\Commun\Sources\Windev Mobile\BlockSMS\Android\Generation\src\com\masociete\blocksms\wdgen\GWDCPCOL_SMS.java:123: error: invalid method declaration; return type required
PUBLIC void onDestroy() {
^
5 errors
FAILED
Registered member
637 messages
Popularité : +36 (36 votes)
Posted on April, 18 2017 - 6:55 PM
Bonjour,

le mot "PUBLIC" doit être en minuscule.

Mais de toute façon ce code ne fonctionne pas ou plus. D'autant plus qu'il n'est plus possible d'effacer un SMS depuis android 4.4.
Ce n'est pas une question de soft, c'est android qui l'impose.

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Posted on September, 12 2019 - 10:53 AM
bonjour

j'ai besoin de faire le même projet.

floman321 avait mis un lien vers le projet.

je me retrouve avec différente erreur JAVA que j'ai dû mal à corriger

si floman321 est toujours connecté merci pour son aide
Posted on September, 12 2019 - 4:19 PM
ouf
j'ai reussi à compiler !
il faut des majuscules à Object et String

par contre unique info à la reception d'un SMS...
Posted on September, 12 2019 - 5:30 PM
je n'ai aucune information de réception SMS
Posted on September, 30 2019 - 1:15 PM
Bonjour floman321
Puis-je avoir le lien de ton exemple ?
Celui-ci ne fonctionne plus : https://dl.dropboxusercontent.com/u/2279433/Sms.zip
Merci de M'aider
Posted on September, 30 2019 - 1:21 PM
Bonjour Mohamed
J'ai suivi exactement ta procédure détaillée de Lecture de SMS.

1. Créer projet un reception_sms.
2. Dans le code de la fenêtre principale, Déclarations globales, ajouter le code
3. Créer 1 procedure globale ( RecoitSMS() en java ) :
Attention ne pas mettre de nom de procédure avant les import.* comme c'est le cas en wlangage
4. Créer une procédure globale ( AffecteSms() en WLangage )
5. Au moment de la génération de l'application Android, Ajouter la permission suivante
android.permission.RECEIVE_SMS Permet à une application de contrôler les messages sMS entrants, d'enregistrer ou d'effectuer des traitements.

J'ai l'erreur suivante:
Echec de la création de l'application Android <C:\Mes Projets Mobile\SMS_SEND\Exe\SMS_SEND.apk>.
Ligne de commande : "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -Duser.dir="C:\Mes Projets Mobile\SMS_SEND\Android\Gen" "-Dorg.gradle.appname=C:\Mes Projets Mobile\SMS_SEND\Android\Gen" -classpath "C:\Users\HP\AppData\Roaming\PC SOFT\24.0\Android\Gradle\lib\gradle-launcher-4.4.1.jar" org.gradle.launcher.GradleMain assembleDebug -b "C:\Mes Projets Mobile\SMS_SEND\Android\Gen\build.gradle"

Erreur retournée :
:compileDebugJavaWithJavacC:\Mes Projets Mobile\SMS_SEND\Android\Gen\src\net\moniep\sms_send\wdgen\GWDCPGlobale_.java:49: error: <identifier> expected
PUBLIC static void RecoitSMS() {
^
C:\Mes Projets Mobile\SMS_SEND\Android\Gen\src\net\moniep\sms_send\wdgen\GWDCPGlobale_.java:57: error: <identifier> expected
PUBLIC void onReceive(Context arg0, Intent intent) {
^
C:\Mes Projets Mobile\SMS_SEND\Android\Gen\src\net\moniep\sms_send\wdgen\GWDCPGlobale_.java:76: error: <identifier> expected
PUBLIC void onDestroy() {
^
3 errors
FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s
16 actionable tasks: 6 executed, 10 up-to-date




Merci de M'aider s'il vous plait.
Mon Mail: amisolo77@gmail.com
Registered member
3 messages
Posted on October, 01 2019 - 9:32 AM
Bonjour floman321.
J'ai un projet Windev Mobile qui consiste à detecter un SMS, le traiter et à renvoyer un nouveau message à lexpediteur du message.
J'ai pacourru le forum et j'etais très heureux de voir vos exemples.
J'ai testé la première partie de mon projet qui consiste à détecter un SMS.
Malheureusement, le téléphone ne réagit pas dès réception d'un nouveau message.

Aidez-moi s'il vous plaît.
Merci

--
Education-Formation
Posted on October, 01 2019 - 3:44 PM
Vérifie si l'autorisation SMS est bien activée dans ton application
Registered member
3 messages
Posted on October, 09 2019 - 10:17 AM
Bonjour stef1811.
J'ai tout vérifié avant la génération de mon APK.
Mais Toujours aucune réaction dès la réception d'un SMS.
Merci de m'aider.

--
Education-Formation
Posted on October, 09 2019 - 10:42 AM
Je parlais de l'autorisation dans l'application sur le téléphone
Sinon tu as tout dans la LST 118 l'exemple a été repris
Posted on October, 09 2019 - 12:00 PM
Il y a un exemple livré dans la prochaine LST
https://www.pcsoft.fr/lst/index.html
Registered member
3 messages
Posted on October, 09 2019 - 9:07 PM
Bonjour Lionel.
Dieu merci.
Vivement que cette LST résolve mon problème.
Je galère depuis des jours.
Merci.

--
Education-Formation
Posted on February, 05 2020 - 3:53 AM
Bonjour floman321, Je suis tombé sur ton code qui marche bien je me demande si vous pourriez me donnée une idée sur quoi je veux récupérer lec contenu du message qui vient d'arriver? Merci pour votre aide ,je suis encore nouveau sur windev mobile et java.
Posted on February, 05 2020 - 8:10 AM
Bonjour,

avez vous essayé de décommenter //String body = sms.getMessageBody().toString(); ?
Posted on March, 19 2020 - 12:49 PM
Bonjour,

Je suis interessé, pourrais je avoir li ZIP?

Merci d'avance
Posted on April, 08 2021 - 11:58 AM
Bonjour
J'ai remarqué que la discussion date mais je voudrais vous demander comment mettre le code de telle sorte qu'il s'exécute en arrière plan même si on ne se trouve pas dans l'application.
Merci
Registered member
8 messages
Posted on March, 07 2024 - 8:18 AM
En Windev mobile 29 (2024) sur Samsung A51 Android 13, la réception des sms (LST 118) en java fonctionne très bien lorsque l'application est ouverte.
MAIS lorsque l'application est fermée je n'ai pas trouvé de solution en java pour relancer mon application Windev mobile qui doit traiter les sms reçus.
J'ai essayé plusieurs solutions mais toutes bloquent sur le lancement de l'appli Windev Mobile par java.

Comment faire exactement ? Non spécialiste de java, il y a certainement beaucoup de "choses" que j'ignore.

Merci pour votre aide détaillant toutes les opérations à faire.

--
J.P. Silvestre
Paris
Posted on March, 22 2024 - 2:49 PM
Bonjour,

Il faut utiliser les itents en java