android 发送模拟按键

1. 权限

需要在manifest 里面增加android:sharedUserId="android.uid.system"
加上<uses-permission android:name="android.permission.INJECT_EVENTS" />权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
    android:sharedUserId="android.uid.system">

....

    <uses-permission android:name="android.permission.INJECT_EVENTS" />

2.使用

例子 sendKeyCode(KeyEvent.KEYCODE_POWER);

//导包
import android.app.Instrumentation;
import android.view.KeyEvent;
.....

        /**
         * 发送一个按键
         * @param keyCode 按键值
         */
        private void sendKeyCode(final int keyCode) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Instrumentation inst = new Instrumentation();
                        inst.sendKeyDownUpSync(keyCode);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }

3. keyevent的值

如果使用的是android studio
可以直接使用shift + ctrl + N 搜索KeyEvent.java


image.png

点击红框
实际framework路径:frameworks\base\core\java\android\view\KeyEvent.java

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。