我的應用中有一個列表字段,顯示聯繫人列表。我想在用戶按下綠色通話按鈕(而不是啓動電話通話記錄應用程序的默認行爲)時呼叫所選聯繫人。用戶按下通話按鈕時撥打應用的電話(覆蓋默認行爲)
這意味着有2個問題: 1)我可以攔截綠色通話按鈕嗎? 2)我怎樣才能從應用程序撥打電話?
我的應用中有一個列表字段,顯示聯繫人列表。我想在用戶按下綠色通話按鈕(而不是啓動電話通話記錄應用程序的默認行爲)時呼叫所選聯繫人。用戶按下通話按鈕時撥打應用的電話(覆蓋默認行爲)
這意味着有2個問題: 1)我可以攔截綠色通話按鈕嗎? 2)我怎樣才能從應用程序撥打電話?
前回答這個問題,假設您正在跟蹤當前所選項目的列表中,你必須找到相關的一種方式電話號碼。
1)截取呼叫按鈕
您需要實現一個管理器或屏幕的keyDown(int, int)
方法,抓住正確的鍵碼,並返回true:
protected boolean keyDown(int keycode, int time)
{
// check for the green phone button
if (keycode == 1114112)
{
/*
* Place your custom calling code here.
*/
return true; // indicates that this method has consumed the keypress
}
else
{
return super.keyDown(keycode, time);
}
}
2)撥打電話
您需要Invoke()
的手機應用程序,傳遞它的電話號碼你想撥打:
PhoneArguments callArgs = new PhoneArguments(
PhoneArguments.ARG_CALL, "+27 83 111 1234");
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs);
protected boolean keyDown(int keycode, int time)
{
// check for the green phone button
if (keycode == 1114112)
{
// get phone number - you must write this yourself
String number = selectedContact.getNumber(); // assume some method here depending on your solution
// make the call
PhoneArguments callArgs = new PhoneArguments(
PhoneArguments.ARG_CALL, number);
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs);
// indicate that the key has been processed
return true;
}
else
{
return super.keyDown(keycode, time);
}
}
從BlackBerry文檔:
net.rim.blackberry.api.phone
公共最後一類電話擴展 對象
這個類提供以下內容:
* Advanced utilities for interaction with the Phone
申請。您可以使用此類中的方法 更好地處理Phone應用程序的 。例如, 將DTMF音調注入有效的 呼叫。 *訪問設備上的多條線路。 *將數據添加到傳入和激活的呼叫屏幕(如果支持)。
多行示例
實施例A:開關的線
創建擴展MultiLineListener的類。
公共類MultiLineAction擴展MultiLineListener
註冊班級爲PhoneListener。
Phone.addPhoneListener(this);
實現MultiLineListener回調,以便應用程序可以通知 切換結果。
public void setPreferredLineFailure(int lineId) {screen.popupMessage(「Switching failed」); } public void setPreferredLineSuccess(int lineId) { _screen.popupMessage(「切換到」+ Phone.getLineNumber(lineId)+「 completed」); }
調用Phone.setPreferredLine()。
Phone.setPreferredLine(Phone.getLineIds()[0]);
實施例B:發起去話呼叫
調用Phone.initiateCall。
Phone.initiateCall(Phone。getLineIds()[0], 「5195550123」);
在關閉應用程序 之前,從電話聽衆註銷該課程。
Phone.removePhoneListener(this);
類別: 簽名:此元素只能通過簽名的應用程序訪問。如果您打算使用此元素,請致電 訪問 http://www.blackberry.com/go/codesigning 以獲取一組代碼簽名密鑰。 代碼簽名僅適用於在BlackBerry 智能手機上運行的 應用程序;在BlackBerry上開發 智能手機模擬器可能發生 而無需代碼簽名。因爲: 黑莓API 4.0.0