2012-08-24 195 views
2

我正在接聽電話的應用程序,並且在撥打電話的過程中,它會輸入先前保存或複製的號碼。首先,我想知道這是否可能。其次,我一直有些想法想,但我不知道他們會如何瘋狂是因爲我是比較新的Android和有關於它的侷限性一點想法:Android:撥打一個自定義號碼,一旦撥打電話

  1. 存儲在剪貼板中的數字,並有在通話屏幕上點擊粘貼,只需將數字粘貼到撥號器中
  2. 取出存儲在剪貼板中的號碼中的每個數字,然後以編程方式按下用戶將觸摸的電話墊上的鍵
  3. 在我自己的應用程序中打開來電,該應用程序可以接聽電話並具有在撥號程序中粘貼/添加號碼的功能
  4. 覆蓋上,在一個調用(比如退格鍵),彈出的小鍵盤的按鍵之一,再編程它來執行我想要的功能(所以不是退格,它會進入保存的號碼)

這些都是可能的(爲什麼或爲什麼)?或者你可以建議任何其他方式來實現我想要的?謝謝,非常感謝。

編輯:讓我更加具體。這是我針對屏幕:

enter image description here - 我需要一些方式來獲得一個自定義數字到這個領域。無論如何,我只需要一個領導或小費來讓我走上正確的軌道。我看到人們製作的應用程序是自定義撥號程序,但他們所做的只是輸入一個號碼並撥打電話。如果我必須製作自己的應用程序,它必須能夠接聽電話或訪問接聽的電話,並填充上述字段或自己的字段,以便發揮相同的功能。

+0

「我正在開發一個可接聽電話的應用程序,並且在通話過程中撥號盤中輸入了以前保存或複製的號碼。」 - 你能用不止一句話來描述問題嗎? 「自定義號碼」是什麼意思?另外,「接聽電話的應用程序」是什麼意思? – RajV

+0

@RajV那麼,我的意思是,如果它檢測到某個來電號碼(用戶可以設置的自定義號碼),那麼我的應用程序就會接聽電話而不是默認的應用程序,並且我將能夠編程可以靈活地在我自己的應用程序中將數字輸入撥號盤。這是假設我不能將任何數字添加到默認應用程序撥號器(在調用中),以及額外的假設,我被允許編寫一個應用程序來接聽並處理它,而不是默認的Android應用程序。這是否更有意義?謝謝! – capcom

+0

查看我的回答。要接聽來電,您需要使用內部ITelephony對象。同樣的撥號方式可能會讓您在撥號盤上輸入幾個數字。如果這樣做,就不需要編寫自己的撥號程序。 – RajV

回答

3

我不認爲這是對於

我想現在最好的辦法是用一個TextView在那裏你可以輸入文本呼叫(可能通過接收器)時打開一個應用程序的API

然後在這裏你可以讓你的電話:

Intent intentCall = new Intent(Intent.ACTION_CALL, Uri.fromParts("tel", phoneNumber, null)); 
startActivity(intentCall); 

但我不知道手機的應用程序將如何反應

+0

非常感謝您的回答。但據我所知,是不是intentCall會開始新的呼叫?不在當前的呼叫中再打一個電話? – capcom

+0

是的,這是錯過的部分。我不知道當前的通話是如何處理這個新的意圖的,它會停止通話並重新建立一個新的通話,還是將通話置於保持狀態並進行新的通話:? –

+0

我想我會嘗試它,但我不指望它的工作:(有* *是一種方式來做到這一點! – capcom

2

從你給出的描述,看來日您需要使用電話管理器界面。 您可能面臨的這個想法將會面臨的問題是,您將嘗試以編程方式選擇呼叫並有效更改電話狀態。換句話說,您需要MODIFY_PHONE_STATE權限。此權限現在僅限於系統應用程序,從薑餅開始。如果沒有這個基本的許可,我認爲你的應用程序的想法不會太難。此外,由於您試圖以編程方式鍵入數字,我假設這是爲了發送DTMF音調,因此您將遇到Android In Call Data無法訪問的問題。 截至目前,Android中對適當的電話軟件包的支持缺失。 我希望以上內容能澄清你的一些問題。

2

如果我理解正確,您希望應用程序在收到呼叫後在撥號盤中輸入幾個數字。

以下可能是一個值得嘗試的選項。

使用Java reflection獲取內部com.android.internal.telephony.ITelephony對象。 Details here。然後致電dial()方法。此方法只是將數字添加到撥號盤,但實際上並未啓動電話呼叫。這可能適合你。

+0

謝謝!我現在正在調查這個。 – capcom

+0

你知道我在哪裏可以找到例如,我無法在API中找到dial()函數,謝謝。 – capcom

+0

只是想讓你知道我已經試過了,並且它不起作用。通話結束後撥號程序結束,但撥打電話時仍未進入活動撥號程序(如原始帖子中的圖片所示)。如果您想查看我的代碼以查看是否可以計算出任何內容,那麼將是真棒。再次感謝,我希望它的工作:( – capcom