Comment Obtenir une Réponse à partir de USSD code à partir d'Android?
J'ai écrit une application qui utilise la technologie ussd code. Je veux envoyer une demande pour un ussd, mais je ne sais pas comment obtenir les données et les enregistrer dans une Chaîne de caractères.
exemple de code:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
String encodedHash = Uri.encode("#");
String ussd = "*141*1" + encodedHash;
startActivityForResult(new Intent("android.intent.action.CALL",
Uri.parse("tel:" + ussd)), 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
Toast.makeText(getApplicationContext(),
"USSD: " + requestCode + " " + resultCode + " ", 1).show();
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
//String result=data.getStringExtra("result");
String dd = data.toString();
Toast.makeText(getApplicationContext(), dd, 1).show();
}
}
Captures d'écran de l'application:
comment Résoudre mon Problème?
Avez-vous trouvé le moyen de résoudre votre problème?
Non!Je n'ai pas......
code.google.com/p/android/issues/detail?id=57120#c14
Comment avez-vous résolu votre problème? Merci de me donner une solution, je suis à la recherche pour elle!
Non,je ne pouvais pas Résoudre Mon Problème.Dans la mesure où dans android ,recevoir message ussd pas pris en charge. et nous ne pouvons pas Gérer Respinse de UUSD
Non!Je n'ai pas......
code.google.com/p/android/issues/detail?id=57120#c14
Comment avez-vous résolu votre problème? Merci de me donner une solution, je suis à la recherche pour elle!
Non,je ne pouvais pas Résoudre Mon Problème.Dans la mesure où dans android ,recevoir message ussd pas pris en charge. et nous ne pouvons pas Gérer Respinse de UUSD
OriginalL'auteur sr.farzad | 2013-09-28
Vous devez vous connecter pour publier un commentaire.
La composition d'un code USSD à partir d'une activité personnalisée est simple à l'aide d'un CADRAN ou un APPEL d'intention, mais en écoutant le résultat n'est pas dû à Android ne pas avoir un bon support pour l'interception des USSD les appels au sein de la plate-forme, mais, même partiel, des sans-papiers de soutien existe au sein de la maternelle application de numérotation.
Pour commencer, regardez la PhoneUtils classe dans le code source Android. Le lien est pour 4.0.3 mais je crois que cette prise en charge partielle a été présente depuis la 2.3.
Spécifiquement, en regardant la ligne 217, une intention avec le nom “com.android.ussd.IExtendedNetworkService” est composé. Donc, ce que vous devez faire est de mettre en place votre propre service qui répond à cette intention. Le service doit être mis en œuvre selon les IExtendedNetworkService.aidl qui est une partie de l'Android cadre.
L'aidl expose plusieurs fonctions, mais celle qui nous intéresse, c'est le getUserMessage(texte) la fonction de ce service. Le texte est la dernière valeur retournée par la USSD appel.
Notes:
Checkout un exemple de code sur github ici.
J'ai déjà ajouté un lien vers un dépôt github qui a le code nécessaire, son tout à fait. Il sera mieux à vous de vérifier le dépôt. cliquez ici pour voir le code.
pouvez-vous faire un exemple de projet qui utilise votre USSD Intercepteur? J'ai un problème qui ne peut pas importer le aidl fichier à ma classe java
J'ai mis en place le code dans le lien que vous avez fourni... Mon téléphone est Jelly Bean 4.1.1 ... Après le déploiement du logiciel, j'ai éteint le téléphone et redémarré... Mais quand je le déclencheur d'une USSD demande, je ne vois rien dans le Logcat....ce que je fais mal ?
OriginalL'auteur Gondy