繁体   English   中英

Java-获取已连接的android设备的屏幕截图

[英]Java - Get a screenshot of connected android device

我正在尝试编写一个Java程序,以捕获已连接(通过USB)Android设备的当前屏幕并将其保存在PC中。 我正在寻找我可以使用的任何库或我可以遵循的任何教程..我真的在这里迷路了。

从亚行获取设备列表

IDevice[] devices = bridge.getDevices();

然后您可以获得带有序列号的特定设备

d.getSerialNumber()

然后捕获屏幕,

RawImage rawImage = device.getScreenshot();

将原始数据转换为图像

    BufferedImage image = new BufferedImage(rawImage.width, rawImage.height,
            BufferedImage.TYPE_INT_ARGB);

    int index = 0;
    int IndexInc = rawImage.bpp >> 3;
    for (int y = 0 ; y < rawImage.height ; y++) {
        for (int x = 0 ; x < rawImage.width ; x++) {
            int value = rawImage.getARGB(index);
            index += IndexInc;
            image.setRGB(x, y, value);

最终保存图片

ImageIO.write(image, "png", new File(filepath));

使用ddmlib.jar

来源: https : //github.com/miracle2k/android-platform_sdk/blob/master/screenshot/src/com/android/screenshot/Screenshot.java

可以在这里找到工作和库。http://www.java2s.com/Code/Jar/d/Downloadddmlibjar.htm

截图:

           ProcessBuilder processBuilderq1 = new ProcessBuilder(new String[] { "cmd.exe", "/c", "adb shell /system/bin/screencap -p /sdcard/s.png"});
           Process pq1 = processBuilderq1.start();

拉到PC:

               ProcessBuilder processBuilderq1 = new ProcessBuilder(new String[] { "cmd.exe", "/c", "adb pull /sdcard/s.png D:\\Images\\s1.png"});
               Process pq1 = processBuilderq1.start();

您可能要检查一下。 如何在Android中以编程方式获取屏幕截图?

尝试拍摄照片并将其保存在单独的过程中。

您可以尝试在程序中调用ADB(假设已安装USB驱动程序并且在移动设备上对计算机进行了授权):

adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png

使用perl:
adb shell screencap -p | perl -pe 's/\\x0D\\x0A/\\x0A/g' > screen.png

资料来源: 这里

您可以使用以下Process process = new ProcessBuilder("C:\\\\PathToExe\\\\MyExe.exe","param1","param2").start();在Java中调用可执行文件: Process process = new ProcessBuilder("C:\\\\PathToExe\\\\MyExe.exe","param1","param2").start();

来源: Java编程:从Java调用exe并传递参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM