安卓开发现在还有办法实现普通app(非系统app)静默截图么?
首先声明,甲方提的需求,他们自己内部app,进行反馈时使用,说是员工水平普遍不高,app做成各种弹出申请权限手工设置的,一堆人搞不定,所以要这个请各位讨论技术问题
网上有说 用 反射调用 android.view.SurfaceControl 的 screenshot 方法
试了下,虽然在高低版本手机,都不会catch到exception,但最后都返回null
private Bitmap screenShotByReflect() {
try {
Class<?> demo = Class.forName("android.view.SurfaceControl");
// 安卓8.0左右的低版本 的screenshot函数是2个参数
// DisplayMetrics mDisplayMetrics = new DisplayMetrics();
// float[] dims = {mDisplayMetrics.widthPixels, mDisplayMetrics.heightPixels};
// Method method = demo.getDeclaredMethod("screenshot", int.class, int.class);
// return (Bitmap) method.invoke(null, (int) dims, (int) dims);
// 高版本安卓系统,比如安卓11改为4个参数的函数
Method method = demo.getDeclaredMethod("screenshot", Rect.class, int.class, int.class, int.class);
return (Bitmap) method.invoke(null, new Rect(), 0, 0, Surface.ROTATION_0);
} catch (Exception e) {
e.printStackTrace();
return null;
}
} 我有一个方法可以实现,但是只能截图本APP的页面,不能截取其他页面 wystudio 发表于 2023-6-11 08:27
我有一个方法可以实现,但是只能截图本APP的页面,不能截取其他页面
噢噢,这个不用。我这边之前就实现了 以前低版本还可以实现,现在各大版本都不可以实现了吧?
能不能调用系统的截图功能? 这种问题去找骗夕夕的员工问下,他们比Google还清楚。 ilovecomputer66 发表于 2023-6-11 08:51
噢噢,这个不用。我这边之前就实现了
甲方需求不就是在他们的内部APP截图么,难道还要到其他地方去截图? 我记得有个屏幕录制权限吧,开了应该就可以了 getDeclaredMethod 这个可能获取到 私有 的方法 用setAccessible(true) 设置下试试? 远程控制员工手机,设置一下可以吗 没办法了,就算有,官方也会在最新系统修复掉