2014-12-03 55 views
0

我的應用目前不產生最後的「#」在結束AT檢查數據的使用(這應該是* 3282#)Android應用程序開發的呼叫犯規通話全USSD代碼

& T的USSD代碼這裏是我的代碼:

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

每次調用它只是調用 「* 3282」

請幫助我,

在此先感謝

-Tucker

回答

-1

嘗試類似這樣的事情。告訴我它的工作與否

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

試試這個,我沒有測試它,但應該工作。

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

簡單地使用這種方法....

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