EntryNavi : « QML(Qt for Android)でのキーイベントについて | メイン | Rewit for Qt ver0.8更新 »

CategoryNavi : メイン -> コンピューター -> 開発 -> Qt

Qt for Androidで戻るキーなどを無効化する

現状(necessitas 0.3)、QMLではハードキーの戻るの押下をイベント取得することができません。
戻るキーをユーザーが押下すると問答無用でアクティビティが閉じてしまいます。

なので、「修正しないでね」ってコメントで書いてあるjavaコードを修正して実現します。
この辺は開発中でいつ解消されるかわからないですしキー入力を完全に殺してしまうので、さらっと修正前と後のコード載せておきます。
(Androidアプリの開発経験のある人なら聞くまでもないですね。)
修正対象のファイル : QtActivity.java


修正前
    @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);
        }
    }
<Category : Qt>

検索

Google

サイドフィード

track feed 理ろぐ
人気ブログランキング - 理ろぐ
Powered by
Movable Type 3.34