当前位置: 首页 > 知识库问答 >
问题:

从macOS应用程序运行的脚本中使用adb的屏幕截图

吴英武
2023-03-14

我试图在Android-Device/Emulator上拍摄一个屏幕截图,它应该从macOS应用程序中触发。

null

但是,当我从macOS应用程序中运行它时,当我试图从设备中 映像时,我得到了一个错误。

ADB="$1"
DEVICE="$2"
PATH="$3"
FILENAME="$4"

$ADB -s "$DEVICE" shell screencap -p "/sdcard/${FILENAME}"
$ADB -s "$DEVICE" pull "/sdcard/${FILENAME}"

null

adb: error: cannot create './EBC34F20-4624-4435-806B-15D844F4540C.png': Read-only file system

为什么跟我在终端运行的时候不一样?我试着通过adb查看哪个用户正在执行,所有这些都返回相同的信息。

我已经从我的macOS应用程序中移除了沙箱和硬化的运行时,以避免它的干扰。

如果我在模拟器上更改位置(而不是),似乎也没有关系。


共有1个答案

仲孙子辰
2023-03-14

null

删除以下两行:

$ADB -s "$DEVICE" shell screencap -p "/sdcard/${FILENAME}"
$ADB -s "$DEVICE" pull "/sdcard/${FILENAME}"

并用这一行替换它们:

$ADB -s "$DEVICE" exec-out screencap -p > ${FILENAME}

没有 ,因此文件系统根本没有问题。

null

 类似资料:
  • 问题内容: 有没有一种方法可以捕获屏幕,但不会显示应用程序本身。我知道如何最小化框架或使框架不可见,但这必须要做到真正的快速cos,因为它每秒会发生很多次(至少每秒发生一次)。我希望它看起来像Windows Vista / 7中的放大镜。(该应用可以看到自己的背后。) 问题答案: 如果不与相关平台的窗口管理器进行紧密的本机集成,则在Java中这是不可能的。

  • 那么当屏幕被锁定时,是否有任何方法显示特定的XAML页面。目前我正在使用toast通知来完成此操作。但是toast通知的问题是我对UI没有太多的控制。

  • 我用react-native做了一个移动应用程序(目前只有Android系统,它不是一个世博会应用程序),我想禁止用户在应用程序打开时截图。我知道这是不可能完全禁用这一点,但我想使它至少更难采取截图。我发现了一些示例,但我不知道如何实现它们,例如: 如何在Android中防止截屏 有人知道如何设置一个标志,这样我的react-native(android)应用程序的用户在使用该应用程序时就不能截图

  • 我想让应用程序像“简易屏幕录制器”。我必须从哪里开始,因为我搜索了很多,但没有找到任何开始的链接。有任何用于创建屏幕录制器的api,而不是屏幕截图。我不想使用javacv从屏幕截图创建视频。我只想让用户启动应用程序,点击开始录制按钮,然后用户在手机上所做的一切来录制这些内容。 1) Android系统中是否有相关的api。 2) 如何在android中创建屏幕录制器应用程序。 3)是没有任何api

  • 问题内容: 我需要编写一个python脚本来打开一个网站,当该网站完全打开时,它将截取已打开网站的屏幕截图。 我这样写: 它仅在firefox中打开一个新标签,但不截取屏幕截图:( 我希望解决方案是跨平台的。谢谢你的帮助:) 编辑: 这里的主要问题是脚本完全打开了我的网页之前就拍照了。 如何解决这个问题? 问题答案: 这个解决方案是相当跨平台的,但是如果您试图显示一个在桌面上打开的带有菜单/工具栏

  • 我使用的是使用Java机器人类截屏的标准方法,即: 这在大多数情况下都可以正常工作,但它只是在全屏应用程序中拍摄一个空白屏幕的照片(我使用的是Windows 7,所以大多数应用程序都使用Direct X全屏)。这是机器人类的已知问题还是我做错了什么?