디지털 노마드/안드로이드 앱 만들기

앱 화면, 엿보지 마세요! 안드로이드 스튜디오에서 스크린샷 캡처를 막는 방법

LEO Kim 2024. 3. 14. 11:48
반응형

안드로이드 스튜디오에서 스크린샷 캡처를 막는 방법

안드로이드 앱 개발하다 보면, 캡처 기능을 제한하고 싶을 때가 있습니다. 예를 들어, 유료 콘텐츠를 보호하거나 개인정보 유출을 막기 위해서죠.

오늘은 안드로이드 스튜디오에서 getWindow().setFlags() 메소드를 이용하여 스크린샷 캡처를 막는 방법을 알려드릴게요.

1. FLAG_SECURE 플래그: 캡처 방지의 든든한 전사

FLAG_SECURE 플래그는 앱 화면의 콘텐츠를 캡처하거나 녹화하는 것을 막아줍니다. 마치 앱 화면을 보호하는 든든한 전사와 같죠. 다음 코드는 Activity 클래스의 onCreate() 메소드에서 FLAG_SECURE 플래그를 설정하는 방법입니다.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 캡처 방지! 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,
            WindowManager.LayoutParams.FLAG_SECURE);
}

FLAG_SECURE 플래그를 설정하면 다음과 같은 효과가 나타납니다.

  • 스크린샷 캡처: 스크린샷을 찍으면 검은색 화면만 캡처됩니다. 마치 비밀을 가린 검은 베일과 같죠.
  • 화면 녹화: 화면 녹화를 해도 앱 화면이 녹화된 영상에 표시되지 않습니다. 마치 앱 화면이 투명해진 것처럼요.

2. 주의할 점들

  • FLAG_SECURE 플래그는 캡처 기능을 완전히 차단하는 것이 아니라, 캡처된 이미지 또는 영상에 앱 화면이 표시되지 않도록 하는 방식으로 작동합니다.
  • 캡처 기능을 완전히 차단하려면 다른 방법을 사용해야 합니다.
  • FLAG_SECURE 플래그는 앱 전체에 적용되므로, 특정 화면만 캡처를 방지하고 싶은 경우에는 다른 방법을 사용해야 합니다.

3. 활용 예시

  • 유료 콘텐츠를 제공하는 앱
  • 개인 정보를 다루는 앱
  • 게임 앱

4. 추가 정보

  • FLAG_SECURE 플래그는 안드로이드 4.0 이상에서만 사용할 수 있습니다.
  • FLAG_SECURE 플래그는 앱의 권한에 영향을 미칠 수 있으므로 주의해서 사용해야 합니다.

5. 마무리

FLAG_SECURE 플래그는 안드로이드 앱에서 스크린샷 캡처를 방지하는 간단한 방법입니다. 앱의 특성에 따라 캡처 기능을 제한할 필요가 있다면 이 방법을 활용해보세요.

반응형