PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Echec avec code ussd telDialcompose n'affiche pas le '#'
Echec avec code ussd telDialcompose n'affiche pas le '#'
Débuté par Bach BACH ( bach ), 19 fév. 2015 17:06 - 19 réponses
Membre enregistré
22 messages
Posté le 19 février 2015 - 17:06
Bonjour,

merci de bien nous assister pour affricher le code ussd avec WinDev mobile.

le '#' ne s'affiche pas !

exemple :*100# mais a l'exécution j'ai toujours *100

j'utilise la version 18 avec la dernière mise à jour.
Posté le 20 février 2015 - 10:21
J'ai le même problème
Membre enregistré
22 messages
Posté le 20 février 2015 - 11:06
Ya t'il quelqu'un pour nous aider?
moi j'ai meme essayer de le convertir en ASCII :
TelDialerCompose("*100"+Caract(35))
mais jusque la à l'execusion ça me donne : *100
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 25 février 2015 - 15:48
Bonjour,
Essayez avec cette petite procédure java directement dans votre projet windev
import android.content.Intent;
import android.view.View;
import android.net.Uri;
import android.app.Activity;

PUBLIC static void CallUSSD()
{
string prefix = "*" // si cela ne fonctionne pas avec "*" essayez en mettant Uri.encode("*");
string suffix = Uri.encode("#");
string ussd = prefix + "100" + suffix;

Intent intcall = new Intent(Intent.ACTION_CALL);
intcall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intcall.setData(Uri.parse("tel:" + ussd));
getContexteApplication().startActivity(intcall);
}
Membre enregistré
22 messages
Posté le 25 février 2015 - 19:15
Bonjour Philippe PASQUALI,
merci ! mais je n'arive pas a l'apeller!
j'ai essayer avec
appelProcedureWL_String() ça ne marche pas!
executetraitement ça ne marche pas!
execute ça ne marche pas!
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 25 février 2015 - 19:53
bonjour,
si vous l'avez bien mise comme une procédure de votre projet vous faite comme pour une procédure écrite en wLangage et dans ce cas c'est :
CallUSSD()
Membre enregistré
22 messages
Posté le 26 février 2015 - 09:14
Olala!
lors de la génération à 74% voila l'erreur qui s'affiche :
Echec de la création de l'application Android <C:\Mes Projets Mobile\SWITCH ON\Exe\Application Android\Forfaits.apk>.


Ligne de commande : "C:\Program Files\Java\jdk1.8.0_25\bin\javac.exe" -encoding UTF-16LE -nowarn -source 1.5 -target 1.5 -d bin\classes -bootclasspath "C:\android\platforms\android-4\android.jar" gen\com\masociete\switch_on\*.java src\com\masociete\switch_on\wdgen\*.java -classpath "libs;libs\android-support-v4.jar"


Erreur retournée :
src\com\masociete\switch_on\wdgen\GWDCPCOL_ApUSSD.java:32: error: cannot find symbol
string prefix = "*"; // si cela ne fonctionne pas avec "*" essayez en mettant Uri.encode("*");
^
symbol: class string
location: class GWDCPCOL_ApUSSD
src\com\masociete\switch_on\wdgen\GWDCPCOL_ApUSSD.java:33: error: cannot find symbol
string suffix = Uri.encode("#");
^
symbol: class string
location: class GWDCPCOL_ApUSSD
src\com\masociete\switch_on\wdgen\GWDCPCOL_ApUSSD.java:34: error: cannot find symbol
string ussd = prefix + "100" + suffix;
^
symbol: class string
location: class GWDCPCOL_ApUSSD
3 errors
Membre enregistré
22 messages
Posté le 26 février 2015 - 10:58
Je suis perdu !
Posté le 26 février 2015 - 12:57
bonjour
votre procédure est bien mise en tant que "Java" et pas "WL" ?

Désolé mais en ce momentt le forum ne me permet pas de joindre une copie d'écran (et sous firefox je n'arrive même plus à me logger)

Quand vous éditez le code de la fonction, sur le bandeau (la ou il y a en autre chose "Si erreur : par programme") vous devez avoir complétement à gauche "Java" et si ce n'est pas le cas et que vous avez "WL" alors cliquez (gauche) une fois sur "WL" pour faire apparaitre "Java", supprimez tout ce que l'éditeur à mis et collez le code
Posté le 26 février 2015 - 15:11
Bonjour BACH, ne sois pas perdu.
Faut remplacer les "string" par "String"
et tu mets un ; à cette ligne string prefix = "*";

Bonne chance

Cdt.
Posté le 26 février 2015 - 15:13
Voici la version corrigée.
En java c'est "String" et non "string".

--------------------------------------
import android.content.Intent;
import android.view.View;
import android.net.Uri;
import android.app.Activity;

public static void CallUSSD()
{
String prefix = "*"; // si cela ne fonctionne pas avec "*" essayez en mettant Uri.encode("*");
String suffix = Uri.encode("#");
String ussd = prefix + "100" + suffix;

Intent intcall = new Intent(Intent.ACTION_CALL);
intcall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intcall.setData(Uri.parse("tel:" + ussd));
getContexteApplication().startActivity(intcall);
}
---------------------------------------

Bonne chance.

Cdt.
Posté le 26 février 2015 - 16:10
Merci Philippe PASQUALI pour le code.

Cdt.
Membre enregistré
22 messages
Posté le 26 février 2015 - 16:35
Merci Philippe PASQUALI ça marche !
merci aussi JMAK c'est génial !!!!
Membre enregistré
22 messages
Posté le 27 février 2015 - 16:46
Bonjour,
j'arrive a appeler le menu du ussd exemple a l’exécution j'ai :
1.solde
2.Numéro
comment faire pour répondre automatiquement à l'option 1 ou 2 directement par le même bouton.
le code *100*1# n'existe pas . sinon j'allais directement l'inserer dans le code donc il me faut directement répondre.
Merci
Membre enregistré
155 messages
Posté le 05 juillet 2015 - 12:33
Bonjour,

Tout d'abord merci pour ce code.
Quelqu'un serait-il comment effectuer la numéro automatiquement ? ( sans la fenêtre de confirmation )
Posté le 28 juillet 2018 - 21:15
Bonsoir, c'est vrai que ce poste date d'il y'a beaucoup.
Je demande l'aide de la communauté
import android.content.Intent;
import android.view.View;
import android.net.Uri;
import android.app.Activity;

PUBLIC static void Transfert_national_mobicash_airtelmoney(string Montant, string Password)
{
string prefix = "*"; // si cela ne fonctionne pas avec "*" essayez en mettant Uri.encode("*");
string suffix = Uri.encode("#");
string code2 = "R";
string code3 = "2401";
string code4 = code2 + code3;
string ussd = prefix + "555" + prefix +"3"+ prefix +"1"+prefix + code2 +prefix+Montant+prefix+Password+suffix;


Intent intcall = new Intent(Intent.ACTION_CALL);
intcall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intcall.setData(Uri.parse("tel:" + ussd));
getContexteApplication().startActivity(intcall);
}


Lorsque je lance l'appli, le "R" se transforme en "7" je sais pas pourquoi. Si quelqu'un a une idée, thank you d'avance!
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 30 juillet 2018 - 12:40
Bonjour
avez vous essayé la suggestion
string prefix = "*"; // si cela ne fonctionne pas avec "*" essayez en mettant Uri.encode("*");
Membre enregistré
4 messages
Posté le 30 juillet 2018 - 12:54
J'ai essayé avec Uri.encode("R2401") et toujours le "R" en "7".
Posté le 11 août 2020 - 13:34
Je tiens d'abord à vous felicité pour votre volonté de partage et donner solution aux problèmes des autres.Que Dieu vous benisse!!!
Moi egalement j'ai le même souci, mon application vas ececuter le code USSD qui va contenir certaines informations provenant d'un fichier de données. Ex : *100* num_client*SAI_MontUnite*Pin# yes
Je vous remerci.
Posté le 12 août 2020 - 18:38
olivierr a écrit :
Je tiens d'abord à vous felicité pour votre volonté de partage et donner solution aux problèmes des autres.Que Dieu vous benisse!!!
Moi egalement j'ai le même souci, mon application vas executer le code USSD qui va contenir certaines informations provenant d'un fichier de données. Ex : *100*num_client*SAI_MontUnite*Pin# yes
Je vous remerci.