Another solution is to actually send the back button to the Qt application.
This is what I deed:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
int newKeyCode = keyCode;
if ( (keyCode == KeyEvent.KEYCODE_BACK) )
{
newKeyCode = KeyEvent.KEYCODE_MEDIA_PREVIOUS;
}
if (QtApplication.m_delegateObject != null && QtApplication.onKeyDown != null)
return (Boolean) QtApplication.invokeDelegateMethod(QtApplication.onKeyDown, newKeyCode, event);
else
return super.onKeyDown(newKeyCode, event);
}
public boolean super_onKeyDown(int keyCode, KeyEvent event)
{
return super.onKeyDown(keyCode, event);
}
//---------------------------------------------------------------------------
@Override
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
{
int newKeyCode = keyCode;
if ( (keyCode == KeyEvent.KEYCODE_BACK) )
{
newKeyCode = KeyEvent.KEYCODE_MEDIA_PREVIOUS;
}
if (QtApplication.m_delegateObject != null && QtApplication.onKeyMultiple != null)
return (Boolean) QtApplication.invokeDelegateMethod(QtApplication.onKeyMultiple ,newKeyCode, repeatCount, event);
else
return super.onKeyMultiple(newKeyCode, repeatCount, event);
}
public boolean super_onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
{
return super.onKeyMultiple(keyCode, repeatCount, event);
}
//---------------------------------------------------------------------------
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
int newKeyCode = keyCode;
if ( (keyCode == KeyEvent.KEYCODE_BACK) )
{
newKeyCode = KeyEvent.KEYCODE_MEDIA_PREVIOUS;
}
if (QtApplication.m_delegateObject != null && QtApplication.onKeyDown != null)
return (Boolean) QtApplication.invokeDelegateMethod(QtApplication.onKeyUp, newKeyCode, event);
else
return super.onKeyUp(newKeyCode, event);
}
public boolean super_onKeyUp(int keyCode, KeyEvent event)
{
return super.onKeyUp(keyCode, event);
}
As, AFAIK, there is no Qt equivalent for back, I send KeyEvent.KEYCODE_MEDIA_PREVIOUS instead, which translates into Qt::Key_MediaPrevious
- Chris -