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

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

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

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

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


修正前
1
2
3
4
5
6
7
8
@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);
}
修正後
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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