如何以编程方式按下 android 的物理按钮

How to press physical buttons of android programatically

我想以编程方式按下音量按钮。在Java中可以使用机器人class,但在Android中没有机器人class。

我想知道如何在 Android 中实现这一点。

这个怎么样

 private abstract class SimpleButton extends Button {
        public SimpleButton(String text) {
            super(TechDemoLauncher.this);
            setText(text);
            setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    onButtonPressed();
                }
            });
        }

        public abstract void onButtonPressed();
    }

之后你可以像这样实现 onButtonPressed() 方法

private void Example(String string) {
    yourLayout.addView(new SimpleButton(string) {
                @Override
                public void onButtonPressed() {
                    //insert your code
                }
            });
}

我建议您以编程方式 increase/decrease 卷,这会更容易一些,但是如果您想将它用于其他一些过程,那么您可以检查下面的代码 - 编辑 - 我之前给出的片段不起作用,但这个片段有效。它使用可运行的,因此 try catch 块是必需的。

 new Thread(new Runnable() {         
            @Override
            public void run() {
                try {
                    Instrumentation inst = new Instrumentation();
                    //This is for Volume Down, change to 
                    //KEYCODE_VOLUME_UP for Volume Up.
                    inst.sendKeyDownUpSync(KeyEvent.KEYCODE_VOLUME_DOWN);
                }catch(InterruptedException e){}
            }   
        }).start();