代码段
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使用相同的命令,我会抓住我的屏幕。
任何帮助都会很明显
答案 0 :(得分:0)
编辑:我之前的回答是错误的,任何应用都可以使用屏幕捕获命令。
这可能是一个许可问题。你确定你有权写sdcard吗? 查看此帖子,其中涵盖了您的主题: How to run android system app without root permisson?
答案 1 :(得分:0)
我通过在清单中添加以下权限来解决此问题。
<uses-permission
android:name="android.permission.READ_FRAME_BUFFER"
tools:ignore="ProtectedPermissions"/>
注意::这是受保护的权限,我的应用程序是系统应用程序,还使用平台密钥进行了签名。