启动MediaStore.ACTION_VIDEO_CAPTURE时,我试图模拟单击录制按钮。我的目标是让应用程序在意图启动后立即开始记录。但是当我运行代码时,我得到以下内容


  错误:java.lang.SecurityException:注入到另一个应用程序
  需要INJECT_EVENTS权限


。 INJECT_EVENTS权限仅由系统应用程序允许。这是我的代码:

Uri uri = Uri.fromFile(videoFile);
Intent videoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
videoIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
videoIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 15);
videoIntent.putExtra("android.intent.extras.CAMERA_FACING", 1);
videoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(videoIntent, videoRequest);
new Thread(new Runnable() {
    @Override
    public void run()
    {
        Instrumentation inst = new Instrumentation();
        inst.sendKeyDownUpSync(KeyEvent.KEYCODE_MEDIA_RECORD);
    }
}).start();


启动意图后,是否还有其他解决方案可以开始记录?

最佳答案

我找到了解决方案。尝试通过以下视频使用mediarecorder:https://www.youtube.com/watch?v=69J2ycNCtpE

关于android - 注入(inject)其他应用程序需要Android的INJECT_EVENTS权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40418863/

10-13 03:30