반응형

특정 디렉토리의 미디어 화일(이미지, 동영상, 소리)을 삭제하지 않고 앱(갤러리, 비디오, 음악)에서 보이지 않도록 하는 방법

 

1. 마켓에서 앱을 설치했는데, 그 앱의 데이터중에 미디어 화일(이미지, 동영상, 소리)이 앱에 보이는 경우

2. 개발한 앱의 미디어 화일들이 다른 앱에서 보이는 경우

 

사실 1, 2 는 같은 내용입니다.

1의 경우 주로 소비자(고객)의 고민이고, 2의 경우 초보 개발자의 고민일 것입니다.

 

결론부터 말하면, 미디어 화일이 있는 디렉토리에 .nomedia 화일 하나만 만들어주면 됩니다.

 

.nomedia 화일을 추가한 이후 부터는 굳이 삭제하지 않아도 앱에서 보이지 않게 됩니다.

 

앱에서 사용하는 미디어 화일이 노출이 된다는 것은 해당 앱 개발시 실수라고 볼 수 있습니다.

 

혹 소비자가 해당 미디어 화일을 삭제한 경우에 앱에서 오동작이 있을 수 있기 때문입니다.

 

다른 관점에서 보면, 특정 디렉토리에 있는 미디어 화일들을 삭제하지 않고 단지 보이지 않도록 하기위한 방법으로 이용할 수도 있습니다.

 

.nomedia 화일 만드는 것에 어려움을 느낀다면 마켓에 앱을 다운받아서 대신 할 수도 있습니다.

 

StudioKUMA .nomedia Manager 라는 무료앱이면서 광고도 없는 앱을 추천드립니다.

 

 

 

 

사용방법은 아래에 적혀있는 것처럼 디렉토리를 길게 누르면 "Disable Media Scanning" 나오는데, 이것을 선택하면 해당 디렉토리에 있는 미디어 화일들은 앱에서 보이지 않게 되비다.

똑같이 한번 더 수행하면, "Enable Media Scanning" 나오면서 앱에서 미디어 화일들이 보이도록 할수  있습니다.

Android 4.3+ 이후부터는 Refresh (위치: 더보기 - Refresh) 를 해줘야 합니다.

 

 

감사합니다.

반응형

 

결론부터 말하면 OEM / 3rd Party 모두 CameraService 로그를 확인하면 됩니다.

 

 

Android 5.0 (Lollipop) 이후부터 Camera API v2 (이하 Camera2)를 지원합니다.

 

당연히 Lollipop 이나 그 이후 OS 버전이 적용된 폰의 경우 Camera2 를 이용해서 카메라앱을 개발할 수 있습니다.

 

그럼, OEM Camera (Preload Camera)앱의 경우 Camera2 를 사용해서 개발했을까요?

 

테스트해 보면 갤럭시S7의 Preload Camera(com.sec.android.app.camera)앱의 경우 Camera2 를 사용하지 않았습니다.

 

 

 

동일폰에 설치한 Google Camera2 Sample (https://github.com/googlesamples/android-Camera2Basic/)앱의 결과는 어떨까요?

 

예상대로 Google Camera2 Sample (com.example.android.camera2basic)앱의 경우 Camera2 사용이 확인됩니다.

 

 

 

감사합니다.

반응형

Android 7.0 (Nougat) 부터는 JDK 8 (JDK 1.8) 버전이 필요합니다.

 

그리고, 최근에 Android Studio 가 업그레이드 되면서 JDK 8 이전 버전으로 설정되어 있는 경우에 아래처럼 "Unsupported Java Version" 창이 나오면서 실행이 되지 않습니다.

 

Unsupported Java Version

 

 

해결방법은 JDK 8 버전설치 이후 환경변수에서 JAVA_HOME 과 Path 를 변경해주는 것입니다.

 

1. JDK 8 버전 설치

   http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

2. 환경변수 변경 (Windows 7 기준으로 설명)

    제어판 - 시스템 (단축키: Windows + Break)

    고급 시스템 설정 - 환경변수 - JAVA_HOME 변경 (JDK 8 이 설치된 경로를 입력)

 

 

   Path 변경 (JDK 8 이 설치된 경로를 입력, 아래와 같이 JAVA_HOME 으로 넣어둔 경우에는 변경이 필요없음)

 

   이제부터 Android Studio 가 정상적으로 실행됩니다.

 

 

Android Studio 가 실행은 되지만, 빌드를 위해 추가적으로 Android Studio 설정에서도 경로를 변경해줘야 합니다.

 

Project Structure 에 가서 아래처럼 하위버전의 경로를 JDK 8 버전의 경로로 변경해줍니다.
Project Structure 메뉴 위치 : File - Project Structure... [단축키: Ctrl+Alt+Shift+S]

 

 

감사합니다.

반응형

최근[각주:1]에 Android studio 를 업그레이드[각주:2]한 경우에 Messages 창에 다음의 오류가 발생하였습니다.

CreateProcess error=216, %1의 버전이 실행 중인 Windows 버전과 호환되지 않습니다. 컴퓨터의 시스템 정보를 통해 x86(32비트) 또는 x64(64비트) 버전의 프로그램이 필요한지 확인하고 소프트웨어 게시자에게 문의하십시오

 

업그레이드 이후 Android studio 에서는 현재 JDK(Java Development Kit) 8 버전이 필요한데 그 이하 버전으로 설정되어 있는 경우에 나오는 오류였습니다.

 

해결방법은 Project Structure 에 가서 아래처럼 하위버전의 경로를 JDK 8 버전의 경로로 변경해줍니다.

 

Project Structure 메뉴 위치 : File - Project Structure... [단축키: Ctrl+Alt+Shift+S]

 

 

 

 

2016.10.27 내용 추가

상기와 같은 JDK 8 버전 경로를 변경해도 되지 않는 경우에 아래와 같이 해보세요.

 

참고로 이것도 정식 Solution 이 아닌 Workaround 입니다.

 

1) PC 의 모든 JDK & JRE 삭제

2) 최신 JDK 설치(현재 JDK 8 update 111) / 보통 설치시 JRE 8 함께 설치됨.

3) 최신 JDK 에 맞게 시스템 환경변수 변경
4) 위에 그림에 있는 것처럼 최신 JDK 경로로 변경
5) Gradle.properties 에 가서 org.gradle.jvmargs 값을 Xmx512m 으로 세팅

 

출처: Issue Tracker 의 Issue 219524 (https://code.google.com/p/android/issues/detail?id=219524) 

 

2017.1.7 내용 추가

2016년 12월에 릴리즈된 Android studio 2.2.3 버전의 수정사항에 정식으로 반영되었습니다.

즉, Android studio 2.2.3 설치후 JDK8 의 경로로 바꿔주면 오류없이 정상동작합니다.

 

 

감사합니다.

  1. 글쓴 당시: 2016.10월 초 [본문으로]
  2. 글쓴 당시 최신버전: Android studio 2.2.1 [본문으로]

+ Recent posts