2014-05-18 2 views
3

현재 활동에 대한 참조를 사용하여 스크린 샷을 찍는 예가 많이 있습니다. 그러나 필자의 경우 외부 SDK에서 가져온 액티비티의 캡쳐 화면을 가져와야합니다 (그러나 여전히 내 앱 내에 있음). 분명한 이유로 나는 코드 내에서 해당 활동 객체에 대한 참조를 가지고 있지 않습니다. 나는 InstrumentationUiDevice을 사용하는 솔루션을 보았지만 TestCase 프레임 워크를 사용하여 테스트 응용 프로그램을 구현할 때만 작동하는 것처럼 보였습니다. 정상적인 응용 프로그램에서 작동해야했습니다.Android -보기/활동에 대한 참조없이 프로그래밍 방식으로 스크린 샷 찍기

다른 방법이 있습니까? 누군가가이 질문에 유용 발견하면

답변

3

음, 여기 내가 찾은 답이있다 : 활동 또는 서비스에서 가, getApplication()를 호출 registerActivityLifecycleCallbacks()를, 그것에게 Application.ActivityLifecycleCallbacks 인터페이스를 구현하는 객체를 전달합니다.. 이 객체는 모든 액티비티의 onCreate/onStart 등의 콜백을 액티비티 객체에 대한 참조와 함께 가져옵니다.이 객체에서 뷰를 가져 와서 스크린 샷을 캡처 할 수 있습니다. 패키지 이름을 통해 외부 SDK의 활동임을 확인할 수 있습니다.

참고 :Application.ActivityLifecycleCallbacks은 API 레벨 14 (a.k.a. ICS) 이후에만 사용할 수 있습니다.

관련 문제