2011-01-27 170 views
0

我用下面的代碼從Android應用程序內發起呼叫的Android電話:啓動與特殊字符#

intent.setData(Uri.parse("tel:+12345 #123")); 
startActivity(intent); 

雖然開始呼叫,它忽略了一切開始與#。

我讀一些有關修改SpecialCharSequenceMgr.java文件,但我不能找到這個任何地方,老實說不知道到底是什麼一個必須做的。解決這個問題的最好方法是什麼?

回答

9

我相信這個問題是該#符號具有URI中有特殊的意義,所以你必須使用Uri.encode()方法這樣對它進行編碼:

Intent out = new Intent(); 
    out.setAction(Intent.ACTION_DIAL); 
    out.setData(Uri.parse("tel:" + Uri.encode("+12345#123"))); 
    startActivity(out); 
+0

感謝您的快速回復。這會導致電話屏幕打開並顯示正確的號碼(包括特殊字符),但不會再開始呼叫。必須手動按下綠色電話按鈕。有沒有一種方法可以在不手動按下按鈕的情況下啓動呼叫?非常感謝... – user387184 2011-01-27 12:14:19

4

我相信,喬恩並不是完全正確的你的問題,當時的想法是沒有那麼糟糕,但... 您需要使用特殊字符映射發起井號鍵:

Intent intcall = new Intent(Intent.ACTION_CALL); 
intcall.setData(Uri.parse("tel:5555" + "%23"+"additional number")); 
startActivity(intcall); 
0

意向OUT =新意圖();

out.setAction(Intent.ACTION_DIAL);

out.setData(Uri.parse( 「電話:」 + Uri.encode( 「+ 12345#123」)));

startActivity(out);