2012-06-22 138 views
2

我試圖通過我的手機發送USSD代碼,所以我使用了許多意圖,因爲這裏提供的是發送代碼的方式。不幸的是,我每次發送的代碼時發送相同數量* 4355696753發送USSD代碼Android

的代碼我使用發送USSD是:

sendCode.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      String cUssd = ussdCodeEdTxt.getText().toString(); 
      String cToSend = "tel:*" + cUssd + Uri.encode("#"); 
      startActivityForResult(new Intent("android.intent.action.CALL", 
         Uri.parse(cToSend)), 1); 

     } 
    }); 

任何想法,將不勝感激

回答

2

我想您可能需要使用Uri.encode("*")作爲明星以及

sendCode.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      String cUssd = ussdCodeEdTxt.getText().toString(); 
      String cToSend = "tel:" + Uri.encode("*") + cUssd + Uri.encode("#"); 
      startActivityForResult(new Intent("android.intent.action.CALL", 
         Uri.parse(cToSend)), 1); 
     } 
    }); 
+1

沒有用途調用startActivityForResult而不是startActivity。您只需調用startActivity,因爲USSD調用不會將任何結果返回給調用活動。如果您想閱讀返回文本的內容,請參閱此鏈接(http://umeshisran4android.blogspot.com/2015/11/how-to-readparse-ussd-messages.html)。 –

+0

公平點:)我只是建議「*」可能需要編碼。 – formica