6

代码片段

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 使用相同的命令,我会捕获我的屏幕。

任何帮助将不胜感激

4

2 回答 2

0

编辑:我之前的回答是错误的,任何应用程序都可以使用截屏命令。

可能是权限问题。您确定您有权写入 sdcard 吗?查看这篇文章,它涵盖了您的主题: 如何在没有 root 权限的情况下运行 android 系统应用程序?

于 2013-04-19T13:04:52.437 回答
0

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

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

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

于 2019-02-27T17:25:07.897 回答