[我知道自拍杆使用音量按钮拍照。我有一个屏幕录制应用程序。录制时,如果我打开设备的现有相机应用程序,我想从相机应用程序自动拍照。我可以使用以下代码自动按音量按钮:
@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中使用。但是在录制时,我可以用自拍杆拍照。从我的应用程序打开相机后,有什么方法可以用作自拍杆(如按音量按钮)。或其他方式?
提前感谢
为您的活动添加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;
}