2012-08-02 46 views
14

我需要在我的Android應用程序中撥打包含「#」或「p」的撥號電話。Android如何在撥號中撥打包括「#」或「p」的呼叫?

如果我使用下面的代碼:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:629941945#22412")); 
    startActivity(intent); 

這使得調用數629941945沒有#和22412

如果我用下面的代碼:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:629941945p22412")); 
    startActivity(intent); 

它使呼叫沒有「P」:62994194522412.

有,我可以解決這一個形式?

+0

請你讓我們知道,這可能是什麼用例。電話號碼中哪個國家/地區支持字符/特殊字符。 – AAnkit 2012-08-02 09:49:14

+0

我正在做一個應用程序女巫調用VO IP號碼。這個號碼必須打給我暫停後通過的電話號碼。 – user1570942 2012-08-02 10:08:37

回答

0

您不能使用URI解析這些特殊號碼,因爲它們不符合tel:standard。 (http://www.ietf.org/rfc/rfc3966.txt第6ff頁) 您可能想要使用ACTION_DIAL併爲用戶提供輸入號碼的可能性。也許話機會將此解釋爲暫停信號p的意圖。要發送這樣的暫停信號,請檢查Alex Klimashevsky的回答。

0

嘗試使用「,」(逗號)而不是p。雖然不知道「#」,對不起。

0

檢查了這一點,希望它能幫助:)

有些手機沒有「P」字,但「」(逗號),某個地方,這是 「T」,如果你的手機確實沒有這些花哨的字符可用, 嘗試「*」或「#」。希望這些角色中的一個可以工作。當心,在 有些電話是字母區分大小寫,所以P不能工作。

4

嘗試的tel:629941945%2322412代替tel:629941945#22412

%23#

7

代替我已經解決了這個問題,這是解決它的代碼。

Intent shortcutIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+Uri.encode("*111*2#"))); 
startActivity(shortcutIntent); 

它在我的工作很好。 我希望它也對你們有幫助......