Android按键Input KeyEvent

自古美人都是妖i 提交于 2019-12-26 16:15:49

使用android的Input输入系统,模拟按键音量加减。

input命令

adb调试命令:

#音量+
adb shell input keyevent 24
#音量-
adb shell input keyevent 25

Instrumentation实现按键功能

代码实现,调用接口simulateKey()

public static void simulateKey(final int KeyCode) {
    new Thread() {
        @Override
        public void run() {
            try {
                Instrumentation inst = new Instrumentation();
                inst.sendKeyDownUpSync(KeyCode);
            } catch (Exception e) {
                Log.e("hello", e.toString());
            }
        }

    }.start();
}

#音量+
simulateKey(KeyEvent.KEYCODE_VOLUME_UP);

#音量-
simulateKey(KeyEvent.KEYCODE_VOLUME_DOWN);

input命令实现按键功能

代码实现,调用接口simulateKeyByCommand()

public static void simulateKeyByCommand(final int KeyCode){
    try{
        String keyCommand = "input keyevent " +KeyCode;
        Runtime runtime = Runtime.getRuntime();
        Process proc = runtime.exec(keyCommand);
    } catch(IOException e){
        //Log.e(TAG, e.toString());
    }
}

#音量+
simulateKeyByCommand(KeyEvent.KEYCODE_VOLUME_UP);

#音量-
simulateKeyByCommand(KeyEvent.KEYCODE_VOLUME_DOWN);

关于Key值的定义

frameworks\base\core\java\android\view\KeyEvent.java
列举几个:

    /** Key code constant: '*' key. */
    public static final int KEYCODE_STAR            = 17;
    /** Key code constant: '#' key. */
    public static final int KEYCODE_POUND           = 18;
    /** Key code constant: Directional Pad Up key.
     * May also be synthesized from trackball motions. */
    public static final int KEYCODE_DPAD_UP         = 19;
    /** Key code constant: Directional Pad Down key.
     * May also be synthesized from trackball motions. */
    public static final int KEYCODE_DPAD_DOWN       = 20;
    /** Key code constant: Directional Pad Left key.
     * May also be synthesized from trackball motions. */
    public static final int KEYCODE_DPAD_LEFT       = 21;
    /** Key code constant: Directional Pad Right key.
     * May also be synthesized from trackball motions. */
    public static final int KEYCODE_DPAD_RIGHT      = 22;
    /** Key code constant: Directional Pad Center key.
     * May also be synthesized from trackball motions. */
    public static final int KEYCODE_DPAD_CENTER     = 23;
    /** Key code constant: Volume Up key.
     * Adjusts the speaker volume up. */
    public static final int KEYCODE_VOLUME_UP       = 24;
    /** Key code constant: Volume Down key.
     * Adjusts the speaker volume down. */
    public static final int KEYCODE_VOLUME_DOWN     = 25;
    /** Key code constant: Power key. */
    public static final int KEYCODE_POWER           = 26;
    /** Key code constant: Camera key.
     * Used to launch a camera application or take pictures. */
    public static final int KEYCODE_CAMERA          = 27;
    /** Key code constant: Clear key. */
    public static final int KEYCODE_CLEAR           = 28;
    /** Key code constant: 'A' key. */
    public static final int KEYCODE_A               = 29;

参考文献:
https://blog.csdn.net/u011913612/article/details/51916761

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!