我想描述一個把戲項目我在supportforums.blackberry.com黑莓 - 運行菜單,撥號程序手機應用
瞭解到有黑莓原生撥號電話應用程序。
訣竅是在來電,通話失敗或任何其他通話事件後以編程方式運行撥號程序的菜單項。
我想描述一個把戲項目我在supportforums.blackberry.com黑莓 - 運行菜單,撥號程序手機應用
瞭解到有黑莓原生撥號電話應用程序。
訣竅是在來電,通話失敗或任何其他通話事件後以編程方式運行撥號程序的菜單項。
有一個PhoneListener接口,它可以監聽來電和去電的狀態。
見Listen for and handle phone events
引自supportforums.blackberry.com - Re: How to exit an Ui application (by simon_hain):
聽衆很難通過它們添加到應用程序中引用。形象地說,他們成爲輪輞應用的一部分。
如果您將偵聽程序添加到電話應用程序,則此偵聽程序將在手機應用程序的上下文中執行。
您可以在偵聽器方法中使用Ui.getUiEngine()。getActiveScreen()進行檢查。返回的屏幕是電話應用程序的呼叫屏幕。我使用它來執行電話呼叫命令:
- on callInitiated或callConnected我存儲對手機屏幕的引用。
- 我叫phoneScreen.getMenu(0)現在我想執行一個命令:
- 我改變區域設置爲「en」
- 我通過使用menu.getSize()和菜單中的菜單迭代.getItem(I)
- 我檢查menuItem.toString等於我的命令
- 我稱之爲menuItem.run()
- 修改本地化回(如果它被改變),你可以用它來:
靜音
取消靜音
激活免提
視圖speeddiallist
結束通話(僅前4.5/4.6,不知道哪一個)
等等。只打印可用的菜單項:)
此招一個示例代碼,對來電打印所有菜單到控制檯,在回答來電靜音的手機上結束通話 - 取消靜音電話:
public class UseScreenMenu extends Application implements PhoneListener {
String MENU_ITEM_MUTE = "Mute";
String MENU_ITEM_UNMUTE = "Unmute";
public UseScreenMenu() {
Phone.addPhoneListener(this);
}
public static void main(String[] args) {
UseScreenMenu app = new UseScreenMenu();
app.enterEventDispatcher();
}
public void callIncoming(int callId) {
printMenu();
}
public void callAnswered(int callId) {
runMenuItem(MENU_ITEM_MUTE);
}
public void callEndedByUser(int callId) {
runMenuItem(MENU_ITEM_UNMUTE);
}
private void printMenu() {
Screen screen = Ui.getUiEngine().getActiveScreen();
Menu menu = screen.getMenu(0);
System.out.println("Menu of BB Dialler - Begin");
for (int i = 0, cnt = menu.getSize(); i < cnt; i++)
System.out.println("Menu of BB Dialler - "
+menu.getItem(i).toString());
System.out.println("Menu of BB Dialler - End");
}
private void runMenuItem(String menuItemText) {
Screen screen = Ui.getUiEngine().getActiveScreen();
Menu menu = screen.getMenu(0);
for (int i = 0, cnt = menu.getSize(); i < cnt; i++)
if(menu.getItem(i).toString().equalsIgnoreCase(menuItemText))
menu.getItem(i).run();
}
public void callAdded(int callId) {}
public void callConferenceCallEstablished(int callId) {}
public void callConnected(int callId) {}
public void callDirectConnectConnected(int callId) {}
public void callDirectConnectDisconnected(int callId) {}
public void callDisconnected(int callId) {}
public void callFailed(int callId, int reason) {}
public void callHeld(int callId) {}
public void callInitiated(int callid) {}
public void callRemoved(int callId) {}
public void callResumed(int callId) {}
public void callWaiting(int callid) {}
public void conferenceCallDisconnected(int callId) {}
}
我從您的帖子中刪除圖像,因爲ImageShack刪除了它們並用廣告替換它們。有關更多信息,請參閱http://meta.stackexchange.com/q/263771/215468。如果可能的話,你最好重新上傳它們。謝謝! – Undo 2015-09-22 00:48:02