1

Android用のホームスクリーンランチャーアプリを開発しています。
ここで、ユーザーが既にホーム画面にいる場合、ユーザーがホーム
ボタンを押したときのカスタム アクションが必要です。


Go Launcher Exなど、ホームボタンをオーバーライドできる他のランチャーをいくつか知っています。

私のコードは次のとおりです。

@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
    int action = event.getAction();
    int keyCode = event.getKeyCode();

    switch (action)
    {
        case KeyEvent.ACTION_DOWN:
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_HOME:
                    break;
            }
            break;

        case KeyEvent.ACTION_UP:
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_HOME:
                    if (!event.isCanceled())
                        Log.i("TEST", "HOME");
                    break;
            }
            break;
    }

    return super.dispatchKeyEvent(event);
}

しかし、ホームボタンを押しても何も起こりません..

4

2 に答える 2

0

この投稿を参照:

申し訳ありませんが、「ホームキーボタンの押下イベントを検出する」ことはできません。

ただし、同じ投稿で Idistic はこれを回避策として提案しています。

long userInteractionTime = 0;

@Override
public void onUserInteraction() {
    userInteractionTime = System.currentTimeMillis();
    super.onUserInteraction();
    Log.i("appname","Interaction");
}

@Override
public void onUserLeaveHint() {
    long uiDelta = (System.currentTimeMillis() - userInteractionTime);

    super.onUserLeaveHint();
    Log.i("bThere","Last User Interaction = "+uiLag);
    if (uiDelta < 100)
        Log.i("appname","Home Key Pressed");    
    else
        Log.i("appname","We are leaving, but will probably be back shortly!");  
}
于 2013-04-13T19:09:25.703 に答える