使用android中的“音量”按钮以编程方式从相机拍摄照片

问题描述 投票:0回答:1

[我知道自拍杆使用音量按钮拍照。我有一个屏幕录制应用程序。录制时,如果我打开设备的现有相机应用程序,我想从相机应用程序自动拍照。我可以使用以下代码自动按音量按钮:

@Override
 public void run() {
  try {
   Instrumentation inst = new Instrumentation();
   inst.sendKeyDownUpSync(KeyEvent.KEYCODE_VOLUME_UP);
  } catch (Exception e) {

  }

 }
}).start()

当相机应用未打开时,它按音量按钮。但是当相机应用程序打开时,它显示:java.lang.SecurityException:注入到另一个应用程序需要INJECT_EVENTS权限

我知道INJECT_EVENTS权限仅适用于系统应用程序,没有系统应用程序,则只能在rooted device中使用。但是在录制时,我可以用自拍杆拍照。从我的应用程序打开相机后,有什么方法可以用作自拍杆(如按音量按钮)。或其他方式?

提前感谢

android android-permissions android-camera2
1个回答
-1
投票

为您的活动添加OnTouchListener

public class YourActivity extends Activity implements OnTouchListener {
.....

覆盖onKeyDown并在其中写入您的操作

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) 
        || (keyCode == KeyEvent.KEYCODE_VOLUME_UP)){
        //Write your camera capture action
    }
    return true;
}
© www.soinside.com 2019 - 2024. All rights reserved.