現状(necessitas 0.3)、QMLではハードキーの戻るの押下をイベント取得することができません。
戻るキーをユーザーが押下すると問答無用でアクティビティが閉じてしまいます。
なので、「修正しないでね」ってコメントで書いてあるjavaコードを修正して実現します。
この辺は開発中でいつ解消されるかわからないですしキー入力を完全に殺してしまうので、さらっと修正前と後のコード載せておきます。
(Androidアプリの開発経験のある人なら聞くまでもないですね。)
修正対象のファイル : QtActivity.java
戻るキーをユーザーが押下すると問答無用でアクティビティが閉じてしまいます。
なので、「修正しないでね」ってコメントで書いてあるjavaコードを修正して実現します。
この辺は開発中でいつ解消されるかわからないですしキー入力を完全に殺してしまうので、さらっと修正前と後のコード載せておきます。
(Androidアプリの開発経験のある人なら聞くまでもないですね。)
修正対象のファイル : QtActivity.java
修正前
<Category : Qt>
@Override public boolean dispatchKeyEvent(KeyEvent event) { if (QtApplication.m_delegateObject != null && QtApplication.dispatchKeyEvent != null) return (Boolean) QtApplication.invokeDelegateMethod(QtApplication.dispatchKeyEvent, event); else return super.dispatchKeyEvent(event); }修正後
public boolean dispatchKeyEvent(KeyEvent event) { if (QtApplication.m_delegateObject != null && QtApplication.dispatchKeyEvent != null){ boolean process = false; if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){ // back key if(event.getAction() == KeyEvent.ACTION_DOWN){ Log.d("Qt", "back key down"); }else{ Log.d("Qt", "back key up"); } }else{ // other keys process = (Boolean) QtApplication.invokeDelegateMethod(QtApplication.dispatchKeyEvent, event);; } return process; }else{ return super.dispatchKeyEvent(event); } }