Android -以编程方式截取屏幕截图,而无需参考视图/活动



有很多使用当前活动的引用来截取屏幕截图的例子。然而,在我的情况下,我需要采取一个活动的截图,来自外部SDK(但仍然在我的应用程序)。由于显而易见的原因,我在代码中没有对该活动对象的引用。我看到了使用Instrumentation和UiDevice的解决方案,但它们似乎只有在使用TestCase框架实现测试应用程序时才能工作,而我需要它在正常应用程序中工作。

还有别的办法吗?

好吧,如果有人觉得这个问题有用,这里是我找到的答案:在你的活动或服务中,调用getApplication(). registeractivitylifecyecallbacks(),传递给它一个实现应用程序的对象。ActivityLifecycleCallbacks接口。该对象将在每个activity的onCreate/onStart等上获得一个回调,并引用activity对象,从中你可以获得视图并截图。你可以通过它的包名来识别它是来自外部SDK的活动。

注意:应用程序。activitylifecyecallbacks仅在API级别14(即ICS)之后可用。

最新更新