android2.3.3源码,以下是jni编的so部分代码
const String16 name("SurfaceFlinger");
sp<ISurfaceComposer> composer;
getService(name, &composer);
sp<IMemoryHeap> heap;
uint32_t w, h;
PixelFormat f;
composer->captureScreen(0, &heap, &w, &h, &f, 0, 0);
但是heap这里好像没有获取到数据,应该是没有权限,我把能加的权限全部加了,还是搞不定
<uses-permission
android:name="android.permission.READ_FRAME_BUFFER" />
<uses-permission
android:name="android.permission.ACCESS_SURFACE_FLINGER" />
------解决方案--------------------
hello ,建议你了解下android权限管理,
<uses-permission
android:name="android.permission.READ_FRAME_BUFFER" />
<uses-permission
android:name="android.permission.ACCESS_SURFACE_FLINGER" />
这两个权限均不是APP_XXX 的用户能获取的
第三方的应用程序UserID是从APP_0开始的
如果你程序能得到system权限,此办法或可行
------解决方案--------------------
有root权限 然后把应用推到 system/app 目录 尝试一下