使用 MediaProjection API 从后台服务记录:这种方法是唯一可能的方法吗?

Record from a from a background-service using MediaProjection API: is this kind of approach the only one possible?

  Intent dialogIntent = new Intent(BackgroundService.this, ScreenShotActivity.class);
  dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(dialogIntent);

我想问你是否启动 activity ScreenShotActivity.class,这是 MediaProjection 实施的 class,从后台服务是唯一的方法记录屏幕上发生的一切。

来源:

或者是否可以在服务本身内实现 MediaProjection API 的所有内容,而不需要“util”activity?

is it possible to implement everything of the MediaProjection API inside the service itself, without needing an "util" activity?

没有。用户需要同意允许您的应用程序录制屏幕,系统提供的对话框将通过 startActivityForResult() 显示。反过来,这需要 activity.