在Android中编程使用screencap时,将保存空白文件

在Android中编程使用screencap时,将保存空白文件,android,screen,screenshot,Android,Screen,Screenshot,代码片段 void takeSnapShot() { Process process = null; try { process = Runtime.getRuntime().exec("/system/bin/screencap -p /sdcard/snapshot/test_2.png" ); try { process.waitFor();

代码片段

void takeSnapShot() 
    {
        Process process = null;
        try
        {
        process = Runtime.getRuntime().exec("/system/bin/screencap -p /sdcard/snapshot/test_2.png" );

        try
        {
            process.waitFor();
        } catch (InterruptedException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }




    }
我保存了一个空文件,但是如果通过adb shell使用相同的命令,我会捕获屏幕


任何帮助都是值得欣赏的编辑:我以前的回答是错误的,任何应用程序都可以使用屏幕捕获命令

这可能是权限问题。你确定你有写SD卡的权限吗? 查看这篇文章,它涵盖了你的主题:

我通过在清单中添加以下权限解决了这个问题

<uses-permission
    android:name="android.permission.READ_FRAME_BUFFER"
    tools:ignore="ProtectedPermissions"/>

注意:这是一个受保护的权限,我的应用程序是一个系统应用程序,并且使用平台密钥进行签名