web-dev-qa-db-ja.com

USSD呼び出しを行うandroid

残高を確認するには、最初に電話をかける必要があります* xxx#次に、複数のオプションから選択できる応答を受け取り、特定の番号を入力した後、残高を取得します。

Androidアプリで同じコードを使用できますか?

* xxx * x#をダイヤルすると、エラーが発生します。

以下は、* xxx#呼び出しで正常に機能する私のコードです。

String encodedHash = Uri.encode("#");
String ussd = "*" + encodedHash + lCallNum + encodedHash;
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + ussd)));
9
AndroGeek

これは私のために働きます:

private Uri ussdToCallableUri(String ussd) {

    String uriString = "";

    if(!ussd.startsWith("tel:"))
        uriString += "tel:";

    for(char c : ussd.toCharArray()) {

        if(c == '#')
            uriString += Uri.encode("#");
        else
            uriString += c;
    }

    return Uri.parse(uriString);
}

次に、作業コードで:

Intent callIntent = new Intent(Intent.ACTION_CALL, ussdToCallableUri(yourUSSDCodeHere));
startActivity(callIntent);
17
Luís Silva

スカイプの問題を解決する許可を追加することを忘れないでください:P

<uses-permission Android:name="Android.permission.CALL_PHONE"></uses-permission>
6
smj
String ussd = "*XXX*X" + Uri.encode("#");
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + ussd)));

これは私と完璧に連携します。最初の束をそのまま配置し、#をエンコードして、完全な*XXX*X#にします。これは間違いなく役に立ちます

5
user5021871

覚えておくべき重要なこと:

ターゲットにしている場合Android Marshmallow(6.0)以上の場合は、実行時にManifest.permission.CALL_PHONE権限をリクエストする必要があります

4
Khurram Shehzad

これを試してください、私はそれをテストしませんでしたが、動作するはずです。

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + Uri.encode("*3282#")));
startActivity(intent);
3

このコードを使用すると機能します

Intent callIntent = new Intent(Intent.ACTION_CALL);
String ussdCode = "*" + 2 + Uri.encode("#");
callIntent.setData(Uri.parse("tel:" +ussdCode));

if (ActivityCompat.checkSelfPermission(MainActivity.this,
                    Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                return;
            }
startActivity(callIntent);

この行もマニフェストファイルに追加します

<uses-permission Android:name="Android.permission.CALL_PHONE" />
1

このコードを使用できます。わたしにはできる:

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(Uri.parse("tel:" + "*947") + Uri.encode("#")));
startActivity(intent);
1
3bdoelnaggar