Android 14에서는 사진 선택기를 사용하지 않더라도 앱이 액세스할 수 있는 사진을 제한할 수 있습니다.

사진 선택기는 Android 13에서 갤러리에 액세스하려는 앱을 위한 선택적 API였지만 Android 14에서는 다소 필수가 되었습니다.

Android 13의 주요 기능 중 하나는 사용자가 앱에 액세스 권한을 부여할 사진과 동영상을 선택할 수 있는 새로운 시스템 구성요소인 사진 선택기입니다. 앱은 사용자가 사진 선택기를 통해 선택한 항목에 대한 액세스 권한을 얻기 위해 권한을 요청할 필요가 없으므로 앱과 사진 및 비디오를 공유하는 개인 정보 보호 방법이 됩니다. Android 4.4 이후로 사용된 시스템 파일 선택기는 사진 선택기보다 더 많은 기능을 제공하지만 UI는 상대적으로 오래되었습니다.

사진 선택기(및 그 이전의 시스템 파일 선택기)는 앱이 액세스할 수 있는 사진 및 비디오를 제한하여 개인 정보를 보호합니다. 안타깝지만 Android 4.4 이상에서 이전 버전과 호환되는 사진 선택기를 사용할 수 있음에도 불구하고 많은 앱이 사진 선택기를 지원하지 않습니다. 앱은 인텐트를 사용하여 구체적으로 사진 선택기를 호출해야 하지만 많은 앱이 이런저런 이유로 사진 선택기를 사용하지 않기로 선택합니다. 다행히도, 그것은 더 이상 중요하지 않을 수 있습니다 안드로이드 14, 앱이 실제로 API를 사용하는지 여부에 관계없이 사용자가 사진 선택기를 통해 액세스할 수 있는 사진 및 비디오 앱을 선택하는 방법을 테스트하고 있습니다.

많은 앱이 다음을 통해 미디어 파일에 액세스합니다. 미디어 스토어 API. 시스템은 미디어 저장소 컬렉션이라고 하는 유형별로 파일을 인덱싱하고 앱이 미디어 저장소 API를 사용하여 쿼리할 수 있는 데이터베이스를 유지 관리합니다. 미디어 스토어 API를 사용하는 앱은 자신이 소유한 파일을 읽거나 수정할 수 있는 권한을 요청할 필요가 없지만 다른 앱이 소유한 파일에 액세스하려면 사용자가 권한을 부여해야 합니다.

Android 10부터 API 레벨 29 이상을 대상으로 하는 앱은 미디어 스토어 API를 사용하여 파일에 액세스하기 전에 사용자의 READ_EXTERNAL_STORAGE 권한 다른 앱이 소유합니다. Android 13에서 READ_EXTERNAL_STORAGE 권한은 세 가지 다른 권한(READ_MEDIA_AUDIO, READ_MEDIA_VIDEO 및 READ_MEDIA_IMAGES)으로 분할되었습니다. 각각은 API 레벨 33을 대상으로 하는 앱에 미디어 스토어 API를 사용하여 다른 사람이 소유한 오디오, 비디오 및 이미지 파일에 각각 액세스할 수 있는 기능을 부여합니다. 앱.

Android 14는 READ_MEDIA_VIDEO, READ_MEDIA_IMAGES 및 ACCESS_MEDIA_LOCATION을 READ_MEDIA_VISUAL_USER_SELECTED라는 새 권한으로 결합하여 미디어 액세스 권한을 다시 한 번 변경합니다. 이 권한은 설명에 따라 API 레벨 34를 대상으로 하는 앱이 "공유 저장소에서 사용자가 선택한 이미지 및 비디오 파일을 읽을" 수 있도록 허용합니다. 그러나 Android 14는 이 새로운 동작을 API 레벨 33(예: Android 13) READ_MEDIA_VIDEO 또는 READ_MEDIA_IMAGES를 요청합니다.

API 레벨 33을 대상으로 하는 앱이 런타임 권한 대화상자를 트리거하여 사용자에게 READ_MEDIA_VIDEO 또는 READ_MEDIA_IMAGES(또는 둘 다)를 부여하도록 요청하면 Android 14는 "사진 선택"이라는 권한 대화 상자. 이 항목을 탭하면 사용자가 앱 액세스 권한을 부여할 사진이나 동영상을 선택할 수 있는 사진 선택기의 새 버전이 실행됩니다. 에게. 이후 앱은 사용자가 선택하지 않는 한 사용자가 특별히 선택한 미디어 항목에만 액세스할 수 있습니다. 추가 미디어 항목에 대한 액세스를 확장하거나 이미지 및 비디오.

권한 대화 상자의 이 항목은 Android 14 DP1에서 기본적으로 표시되지 않습니다. 전환해야 하는 개발자 플래그에 의해 가시성이 결정되기 때문입니다. 하지만 이 기능이 출시되면 사용자는 항상 앱에서 액세스할 수 있는 사진이나 동영상을 결정할 수 있으므로 개인 정보 보호에 큰 도움이 될 것입니다.

Photo Picker API를 그대로 사용하는 앱이 너무 적어서 Google에서 기존 인텐트 가로채기 그 앱은 대신 사진 선택기를 실행하도록 시스템 파일 선택기를 실행하는 데 사용합니다. Photo Picker에는 아직 클라우드 미디어 공급자의 파일이 표시되지 않는 등 몇 가지 결함이 있지만(아마도 곧 확장 SDK 버전 5!) 및 특정 앨범만 표시 장치에서는 이전 시스템 파일 선택기보다 낫고 갤러리의 모든 사진과 비디오에 액세스할 수 있는 모든 앱보다 확실히 더 좋습니다.

Photo Picker API 구현에 관심이 있는 개발자는 최신 버전의 Jetpack 활동 라이브러리, Android 4.4-Android 10의 Google Play 서비스를 통해 제공되는 이전 버전과 호환되는 버전 또는 다음을 통해 제공되는 프레임워크 제공 버전 호출을 처리합니다. MediaProvider 메인라인 모듈.