Я хочу, чтобы работал следующий поток приложений:
- Запустите мое приложение и покажите две кнопки: Динамик и Отключение звука
- После ответа на входящий вызов пользователь переходит к моему приложению во время разговора.
- Пользователь нажимает кнопку динамика. Следует вызвать меню «Активировать громкую связь».
Я могу получить все пункты меню, включая «Активировать громкую связь». Но при запуске меню выдает IllegalStateException.
мой код
public void fieldChanged(Field field, int context) {
if(field==FldSpeaker){
runMenuItem("Activate Speakerphone");
}
}
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();//null error here
}
Я пытался
synchronized(UiApplication.getApplication().getEventLock()){
//Run code
}
..
synchronized(UiApplication.getApplication().getAppEventLock()){
//Run Code
}
..
UiApplication.getUiApplication().invokeLater(new Runnable(){
public void run(){
//Run Code
}
}
..
UiApplication.getUiApplication().invokeAndWait(new Runnable(){
public void run(){
//Run Code
}
}