关于Android手机屏幕内容获取

凌枫 2015-03-25 11:23:40
现在用C写一个程序,要获得屏幕的内容映射到内存中,然后再进行其他操作。目前的办法是对/dev/graphics/fb0进行打开,然后调用mmap进行映射到内存就可以。代码如下所示:

#define FB_DEVICE "/dev/graphics/fb0"
int fbfd =open(FB_DEVICE, O_RDONLY);
unsigned short int *fbmmap = MAP_FAILED;
fbmmap = mmap(NULL, pixels * bytespp, PROT_READ, MAP_SHARED, fbfd, 0);

但现在有个问题,就是有一些机型,不知道是Android系统版本太高,还是什么原因,利用上述办法的时候,得不到屏幕内容,导致我后续的一些功能都无法实现。并且直接cat fb0文件,都不显示任何内容。
我上面的这段代码,有没有其他的实现方式,能够得到屏幕内容映射到内存中去?
...全文
538 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
凌枫 2015-03-27
  • 打赏
  • 举报
回复
这个问题真的不好解决吗?是分太少?还是我没有说清楚?
凌枫 2015-03-26
  • 打赏
  • 举报
回复
有没有人能够给点思路和支持?
凌枫 2015-03-25
  • 打赏
  • 举报
回复
关于Android手机屏幕的内容获取
凌枫 2015-03-25
  • 打赏
  • 举报
回复
引用 2 楼 beijiguangyong 的回复:
http://goobbe.com/questions/958359/how-to-capture-screen-in-android-and-covert-it-to-image
谢谢回复,但这个不是我想要的,截屏的实现有两种,一种是screenshot,一种是screencap,前者是直接对framebuffer驱动文件内容进行读取,然后转换成图片。 我提出的问题是,现在在安卓系统下,通过我在问题描述中的代码,无法将fb0文件映射到内存中,也就是不能直接获取framebuffer,我那几句代码的实现,有没有其他方式?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧