2017-07-13 5 views
0

長いHOMEボタンを押すと、プログラム的に模倣する方法を見つけようとしています。Androidはプログラムで長いHOMEプレスを起動します

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));

しかし、私は(長い)HOMEプレスと同じように模倣しようとすると::

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME)); 
// Thread.sleep(1000); Perhaps for long press? 
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME)); 

何も起こりませんが、私はBACKボタン次のコードでの作業を持っています。 HOMEボタンの押下を模倣する他の方法はありますか?

ご協力いただきありがとうございます。 アンドリュー

+0

私の知る限り、私はこれを求めています。長押しのホームボタンを押している主な目的は何ですか? –

+0

実際に私はこれを行う方法を知らないので、私はあなたの質問に答えることはできません。しかし、ホームボタンを長押しすると、すべてのAndroid端末が同じ動作をするわけではないことに注意してください。アプリスイッチャーを開いたり、アシスタントを開いたりするものもあります。また、ボタンのデフォルト動作を確認できるかどうかも疑問です。この質問を見るために行く – Extranion

+0

まあ、新しいAmazon Fireデバイスで長いホームボタンを押すとAlexaが聞き取るようになりますが、これはプログラムで達成したいものです。 –

答えて

0

は、あなたはこれを試すことができます。

this.dispatchKeyEvent(new KeyEvent((long) ViewConfiguration.getLongPressTimeout(), (long) 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME), 0); // ViewConfiguration.getLongPressTimeout() returns the duration in milliseconds before a press turns into a long press 

それはこのコンストラクタを使用しています。

/** 
* Create a new key event. 
* 
* @param downTime The time (in {@link android.os.SystemClock#uptimeMillis}) 
* at which this key code originally went down. 
* @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis}) 
* at which this event happened. 
* @param action Action code: either {@link #ACTION_DOWN}, 
* {@link #ACTION_UP}, or {@link #ACTION_MULTIPLE}. 
* @param code The key code. 
* @param repeat A repeat count for down events (> 0 if this is after the 
* initial down) or event count for multiple events. 
*/ 
public KeyEvent(long downTime, long eventTime, int action, 
       int code, int repeat) { 
    mDownTime = downTime; 
    mEventTime = eventTime; 
    mAction = action; 
    mKeyCode = code; 
    mRepeatCount = repeat; 
    mDeviceId = KeyCharacterMap.VIRTUAL_KEYBOARD; 
} 

thisを参照してください。それは助けるかもしれない。

関連する問題