java - 在后台服务中截取屏幕截图

标签 java android kotlin background-service

我正在尝试制作一个气泡应用程序来截取其他应用程序的屏幕截图。

我找到了这个项目link具有媒体投影示例,但图像未保存到设备中。

有什么方法可以将此图像保存到设备上,或者有没有其他方法可以在后台服务中使用我的应用程序进行屏幕截图。

最佳答案

我已经检查了链接,我认为有一种方法可以保存从屏幕截图中获取的文件。

来自ImageTransmogrifier

@Override
  public void onImageAvailable(ImageReader reader) {
    final Image image=imageReader.acquireLatestImage();

    if (image!=null) {
      Image.Plane[] planes=image.getPlanes();
      ByteBuffer buffer=planes[0].getBuffer();
      int pixelStride=planes[0].getPixelStride();
      int rowStride=planes[0].getRowStride();
      int rowPadding=rowStride - pixelStride * width;
      int bitmapWidth=width + rowPadding / pixelStride;

      if (latestBitmap == null ||
          latestBitmap.getWidth() != bitmapWidth ||
          latestBitmap.getHeight() != height) {
        if (latestBitmap != null) {
          latestBitmap.recycle();
        }

        latestBitmap=Bitmap.createBitmap(bitmapWidth,
            height, Bitmap.Config.ARGB_8888);
      }

      latestBitmap.copyPixelsFromBuffer(buffer);
      image.close();

      ByteArrayOutputStream baos=new ByteArrayOutputStream();
      Bitmap cropped=Bitmap.createBitmap(latestBitmap, 0, 0,
        width, height);

      cropped.compress(Bitmap.CompressFormat.PNG, 100, baos);

      byte[] newPng=baos.toByteArray();

      svc.processImage(newPng);
    }
  }

正如您所注意到的,那里有一个 latestBitmap 对象,从这里您实际上可以将此位图保存到您想要保存的任何位置。

例如您可以引用这个链接https://www.simplifiedcoding.net/android-save-bitmap-to-gallery/将其保存在您的图库中:)

关于java - 在后台服务中截取屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65144689/

相关文章:

android - AVD 缺少 Google Play 服务

android - Sherlock 操作栏中的多个自定义 View ..?

android - 如何修复 Kotlin JobCancellationException?

java - 如何限制开发人员使用反射访问Java中的私有(private)方法和构造函数?

java Gui从其他类访问arrayList

java - 在 Java 中将整数、 double 转换为字符串

android - AnimatedVisibility 和 SwipeToDismiss Enter 动画不触发 - Jetpack Compose

java - 无法为 Selenium/WebDriver 运行 Java 示例

android - 如何在双手机中从指定的 SIM 卡发送短信

android - 使用Kotlin从另一个列表中提取的字符串创建列表