2011-01-21 17 views

回答

4

前回答這個問題,假設您正在跟蹤當前所選項目的列表中,你必須找到相關的一種方式電話號碼。

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); 
    } 
} 

(基於答案在http://supportforums.blackberry.com/t5/Java-Development/Can-Over-ride-Call-Button-using-api-Issue-Shows-Context-Menu-on/m-p/252554/highlight/true#M41073給出)

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); 
    } 
} 
1

從BlackBerry文檔:

net.rim.blackberry.api.phone

公共最後一類電話擴展 對象

這個類提供以下內容:

* Advanced utilities for interaction with the Phone 

申請。您可以使用此類中的方法 更好地處理Phone應用程序的 。例如, 將DTMF音調注入有效的 呼叫。 *訪問設備上的多條線路。 *將數據添加到傳入和激活的呼叫屏幕(如果支持)。

多行示例

實施例A:開關的線

  1. 創建擴展MultiLineListener的類。

    公共類MultiLineAction擴展MultiLineListener

  2. 註冊班級爲PhoneListener。

    Phone.addPhoneListener(this);

  3. 實現MultiLineListener回調,以便應用程序可以通知 切換結果。

    public void setPreferredLineFailure(int lineId) {screen.popupMessage(「Switching failed」); } public void setPreferredLineSuccess(int lineId) { _screen.popupMessage(「切換到」+ Phone.getLineNumber(lineId)+「 completed」); }

  4. 調用Phone.setPreferredLine()。

    Phone.setPreferredLine(Phone.getLineIds()[0]);

實施例B:發起去話呼叫

  1. 調用Phone.initiateCall。

    Phone.initiateCall(Phone。getLineIds()[0], 「5195550123」);

  2. 在關閉應用程序 之前,從電話聽衆註銷該課程。

    Phone.removePhoneListener(this);

類別: 簽名:此元素只能通過簽名的應用程序訪問。如果您打算使用此元素,請致電 訪問 http://www.blackberry.com/go/codesigning 以獲取一組代碼簽名密鑰。 代碼簽名僅適用於在BlackBerry 智能手機上運行的 應用程序;在BlackBerry上開發 智能手機模擬器可能發生 而無需代碼簽名。因爲: 黑莓API 4.0.0

http://www.blackberry.com/developers/docs/6.0.0api/