❶ 为什么 android 截屏需要 root 权限
android 截屏为什么需要root权限?
【主要原因】
andorid系统在调用截图功能的时候一般会调用命令的形式去截屏,而这些命令在普通用户权限下是没办法执行的,必须是在root用户权限下才能进行截屏。
【主要实现方式和原因】
传统截屏方式,采用读取 framebuffer 的方式实现截屏,需要root权限,Android 3.0以前android sdk提供的截屏方式。
SurfaceFlinger 方式截屏,在 Android 4.0 里提供的一种解决方案,改方案需要系统级权限READ_FRAMEBUFFER 权限,由于是系统权限也必须是root的权限下才可以进行截屏
由于目前大多数android开发的基础版本都是在4.0的基础上开发,所以会看到很多第三方的截屏软件截屏需要在root的权限下才能进行截屏。
【另外】
并不是所有的截屏都必须需要root的权限,其实在众多截屏方案中还有一种截屏方案不需要root权限也可以截图。
主要实现方式
Android 截屏 -- ddms方式。
实现原理
主要是通过执行adb shell命令的形式进行截屏。而调用这些命令会实际上也要系统权限,但是这个方法特殊的地方就在他其实是通过adb shell进行截图的时候把命令个了设备上的 adbd 守护进程,而这个进程间接的启动了screencap,也就是开启了上面的方法二中的SurfaceFlinger 截屏方式的后段截屏步奏,所以导致不需要root权限进行截屏。
其中:
adbd 是以 shell 用户执行的, 而系统为 shell 用户分配 graphics 组,所以 shell 用户是有权限调用 surfaceflinger 的接口的。
【最后】
推荐使用不需要root权限截屏的方案。
❷ 华为手机为什么一些应用不允许截屏会出现涉嫌隐私,不允许截屏,录屏显示黑屏,该如何解决
如果您的手机在第三方应用界面无法截屏或录制视频,出现以下现象:
1.在应用界面录制视频,结束录制后在图库中打开视频,显示黑屏,有声音无图像,无法查看。
2.在应用界面截图时提示“当前界面涉及隐私内容,不允许截屏”。
3.截屏时页面无显示,菜单栏显示无法捕获屏幕截图。
该现象是由于部分应用自身考虑到客户信息安全,针对应用界面禁止截屏,录屏,此为应用本身设计如此。如果您有其他疑问,建议您向相关应用开发团队咨询反馈。