[업데이트: 자세한 내용] Android 11에서는 타사 카메라 앱이 이미지/동영상 선택 인텐트에 표시되는 것을 차단합니다.

Android 11에서는 타사 카메라 앱이 이미지/동영상 선택 인텐트 작업에 표시되지 않도록 하는 변경 사항을 구현합니다.

업데이트 1(2020년 8월 20일 @ 오후 6시 15분(ET)): Google은 Android 11의 타사 카메라 앱이 암시적 이미지/비디오 인텐트 작업에 응답할 수 없는 이유를 설명하기 위해 개발자 문서를 업데이트했습니다. 자세한 내용을 보려면 아래로 스크롤하세요. 2020년 8월 19일에 게시된 기사는 아래에 보존되어 있습니다.

Android 11은 앱이 상호작용하는 방식을 바꾸고 있습니다. 타사 카메라 앱 그러면 이미지/비디오 선택 의도에 표시되지 않습니다. 이전 버전의 Android에서는 앱이 사용자에게 이미지 캡처를 허용하려는 경우 앱 내에서 사진 촬영을 구현할 수 있습니다. (Android의 다양한 카메라 API 사용) 또는 전용 카메라 앱에서 처리할 수 있는 인텐트를 보내 이미지를 캡처할 수 있습니다. 대신에. 앱이 후자 옵션을 사용하기로 결정하면 이전 Android 릴리스 사용자에게 이미지 캡처를 위해 원하는 카메라 앱을 선택할 수 있는 명확성 대화 상자가 표시됩니다. 대화상자에는 일반적으로 특정 의도에 응답하도록 작성된 타사 카메라 앱을 포함하여 사용자 기기에 설치된 모든 카메라 앱이 표시됩니다. 그러나 Android 11에서는 개발자가 특정 타사 카메라 앱을 특별히 타겟팅하지 않는 한 사전 설치된 기본 카메라 앱만 대화상자에 포함됩니다.

이러한 변화는 대부분의 경우 사용자가 사진을 찍고 싶을 때 타사 카메라 앱을 수동으로 실행해야 하므로 타사 카메라 앱 사용이 덜 편리하다는 것을 의미합니다. 또한 사용자가 자신이 좋아하는 카메라 앱을 더 이상 다른 앱에서 실행할 수 없다는 사실을 알게 되면 타사 카메라 앱 개발자를 비난하게 됩니다. Google은 타사 카메라 앱이 다음 인텐트 작업에 응답하지 못하도록 방지하여 Android 11에서 이러한 변경 사항을 구현하고 있습니다.

  • android.media.action.VIDEO_CAPTURE
  • android.media.action.IMAGE_CAPTURE
  • android.media.action.IMAGE_CAPTURE_SECURE

구글은 말한다 이러한 변경 사항은 사용자의 개인 정보 보호와 보안을 보호하기 위해 Android 11에 적용되었습니다. 회사는 그 방법에 대해 자세히 설명하지 않지만 일부 악성 앱이 사용자의 사진에 접근하기 위해 카메라 앱으로 가장했을 가능성이 높습니다. 그러나 회사는 앱이 타사 카메라 앱을 계속 실행할 수 있도록 허용하는 개발자를 위한 해결 방법을 언급합니다. 이 해결 방법을 사용하려면 기본적으로 개발자가 인텐트를 보낼 때 선택한 특정 타사 앱을 대상으로 지정해야 합니다. 예를 들어 문서 스캐너 앱 개발자는 명시적인 실행 의도를 보낼 수 있습니다. 어도비 포토샵 카메라 카메라 선택기를 열라는 암시적인 의도를 보내는 대신. Android 11에서는 개발자가 앞서 언급한 3가지에 응답할 수 있는 앱 목록을 쿼리할 수도 없도록 만듭니다. 즉, 개발자는 자신이 원하는 타사 카메라 앱이 무엇인지 미리 알아야 합니다. 지원하다.

원천: 커먼즈웨어, 안드로이드 개발자

을 통해: 레딧

XDA 선임 회원에게 감사드립니다. AndroidDeveloperLB 팁을 위해!

업데이트 1: Google은 이번 변경이 개인 정보 보호를 유지하기 위한 것이라고 말합니다.

Google은 '에 대한 새로운 정보로 Android 11 동작 변경 페이지를 업데이트했습니다.미디어 의도 작업에는 시스템 기본 카메라가 필요합니다." 섹션(경유 더 버지). 구글은 이번 변경이 "EXIF 위치 메타데이터가 정의된 위치 권한을 기반으로 올바르게 처리되도록 설계됐다"고 설명했다. 기본적으로 Google은 명시적인 위치 액세스 권한이 아직 부여되지 않은 앱이 사용자가 카메라 앱을 열게 만드는 것을 우려하고 있습니다. 가지다 위치 액세스 권한이 부여되었으며 앱에 전달된 결과 사진에 EXIF ​​위치가 포함될 수 있으므로 그러면 호출 앱은 위치 데이터를 읽어서 위치 액세스 요청을 우회할 수 있습니다. 사진. Android 11에서 앱이 이 작업을 시도하는 경우 다음을 선언해야 합니다. ACCESS_MEDIA_LOCATION 게다가 ACCESS_COARSE_LOCATION 또는 ACCESS_FINE_LOCATION EXIF 위치 메타데이터를 읽기 위한 권한입니다. (참고로, Google은 또 다른 위치 액세스 허점을 폐쇄했습니다. Android 10에서는 앱이 ACCESS_MEDIA_LOCATION 앱이 사진에서 수정되지 않은 EXIF ​​메타데이터를 검색하려고 시도하는 경우 권한이 부여됩니다.)

이 동작 변경은 사용자 정의 기본 카메라 앱을 실행하는 앱의 기능에 영향을 주지만 3 카메라의 오래되고 자주 사용되는 앱은 다음과 같습니다. 앞서 언급한 인텐트 작업은 Google에서 변경 사항이 사용자 정의 기본 카메라 앱을 시작할 수 있는 모든 인텐트 작업에 영향을 미치지 않는다는 점을 지적합니다. 처럼: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, 또는 android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. 그러나 이러한 인텐트는 이미지를 호출 앱으로 다시 전송하는 것을 허용하지 않고 기본 카메라 앱만 실행하기 때문에 동일한 목적으로 사용되지 않습니다.