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

时间:2014-05-18 07:51:58

标签: android sdk android-activity screenshot external

有许多使用对当前活动的引用来截取屏幕截图的示例。但是,就我而言,我需要截取一个来自外部SDK(但仍在我的应用程序中)的活动的屏幕截图。出于显而易见的原因,我在代码中没有引用该活动对象。我看到使用InstrumentationUiDevice的解决方案,但它们似乎只在使用TestCase框架实现测试应用程序时才有效,而我需要它在普通应用程序中工作。

还有其他办法吗?

1 个答案:

答案 0 :(得分:3)

好吧,如果有人发现这个问题有用,那么我找到了答案: 在您的活动或服务中,调用getApplication()。registerActivityLifecycleCallbacks(),向其传递一个实现Application.ActivityLifecycleCallbacks接口的对象。该对象将在每个活动onCreate / onStart等上获得回调,并引用Activity对象,您可以从中获取视图并截取屏幕截图。您可以通过其包名识别它是来自外部SDK的活动。

注意: Application.ActivityLifecycleCallbacks仅在API级别14(a.k.a. ICS)后可用。