簡體   English   中英

Android App Development調用未調用完整的USSD代碼

[英]Android App Development call doesnt call full USSD code

我的應用程序當前在AT&T的USSD代碼末尾未生成用於檢查數據使用的最終“#”(應該是* 3282#)

這是我的代碼:

public void callATT(View view){
        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "*3282#"));
        startActivity(intent);
    }

每次調用它都只調用“ * 3282”

請幫我,

提前致謝

-Tucker

試試這個,我沒有測試,但是應該可以。

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + Uri.encode("*3282#")));
startActivity(intent);
    public 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(USSDCodeHere));
startActivity(callIntent);

只需使用此方法即可。

String encodedHash = Uri.encode("#");
                    String ussd = "*123"+ encodedHash;
                    startActivity(new Intent(Intent.ACTION_CALL, Uri
                            .parse("tel:" + ussd)));enter code here

嘗試這樣的事情。 告訴我它是否有效

 String phone = "*3282#";
 Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", phone, null));
 startActivity(intent);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM