1

오늘 Android M (6.0)을 통해 내 응용 프로그램 중 하나를 테스트하고있었습니다. 이 버전에서 권한 부여가 변경되었으며 Android 6.0 (here is the details)과 호환되도록 애플리케이션을 변경해야한다는 것을 이해했습니다.Android 6.0 이전 버전과의 호환성

예를 들어 위험한 권한 인 sdcard (Eternal Storage)에 대한 액세스 권한을 부여하려면 사용자에게 액세스 권한을 부여한 다음 사용자 결정 (권한 부여/거부)을 항상 처리하도록 요청해야합니다 내 요청은 항상 거절 당한다.

내가 맞는지 아닌지는 잘 모르겠지만 어떻게 든 이전 버전과의 호환성에 대해 알고 싶습니까? 이전 버전에서 실행되는 모든 응용 프로그램을 버전 6.0에서 실행하려면 변경해야합니까? 특별한 응용 프로그램이 더 이상 지원되지 않는 경우, 안드로이드 6.0은 우리가 작별 인사를해야하는 곳입니까?

그리고이 새로운 분위기에서 마쉬멜로가 위험한 권한이 필요한 경우 기존 응용 프로그램을 변경해야합니다.

답변

1

하위 호환성이 유지되는 것으로 보입니다. 당신이 당신의 매니페스트에 위험한 권한을 나열하는 경우, 사용자는 권한을 부여 할 수있다 : 장치가 안드로이드 5.1 이하, 또는 앱의 대상 SDK가 22 이하인를 실행하는 경우 the page you linked,

  • 에서 그들이 앱을 설치할 때; 권한을 부여하지 않으면 시스템에서 앱을 전혀 설치하지 않습니다.
  • 기기가 Android 6.0 이상을 실행하는 경우 앱의 대상 SDK가 23 이상 : 앱이 매니페스트의 권한을 나열해야하며 앱 실행 중에 필요한 위험한 권한을 각각 요청해야합니다 . 사용자는 각 권한을 부여하거나 거부 할 수 있으며 사용자가 권한 요청을 거부하더라도 제한된 기능으로 앱을 계속 실행할 수 있습니다.

따라서, 이전의 애플 리케이션 - SDK 22 이하를 대상으로는 - 설치시 부여 된 권한의 이전 동작을 볼 수 있습니다. 새로운 앱, SDK 23 이상을 목표로하는 앱만이 즉시 걱정해야합니다. 심지어이 경우, 안드로이드 6.0 (API 레벨 23), 사용자는 언제든지 응용 프로그램에서 권한을 취소 할 수 있습니다부터 :

참고 :

페이지 목록 하나주의해야 할 점은 당신이 알고 있어야하지 앱이 낮은 API 수준을 타겟팅합니다. 앱이 어떤 API 레벨을 목표로하는지에 관계없이 필요한 권한이 누락 된 경우 앱이 제대로 작동하는지 테스트해야합니다.

귀하의 앱이 의미하는 바는 기존의 앱이라 할지라도 평상시와 같이 필요한 권한을 잃어 버릴 때 생존 할 수 있어야한다는 것입니다. 그에 따라 테스트하고 업데이트하십시오.

당신이 설치 한 제 3 자 레거시 애플 리케이션이 의미하는 것은 권한이 취소 될 때주의를 기울여야한다는 것입니다. 권한이 갑자기 취소 될 때 권한있는 작업이 성공할 것으로 생각되는 앱에 문제가 발생할 수 있습니다. 분명히 타사 개발자는이 문제를 테스트하고 해결해야하지만 항상 그런 것은 아닙니다.안드로이드 문서에서

+1

내가 확인한대로 응용 프로그램 설정에서 모든 위험한 권한을 응용 프로그램에 수동으로 부여 할 수 있습니다. 내부에는 매니페스트에 나열된 모든 위험한 권한이 표시되며 영구적 인 액세스 권한을 부여 할 수 있습니다. – VSB

0

:

안드로이드의 모든 버전에이 앱을 선언 할 필요가 모두 정상 하고 권한을 선언 설명 으로, 자사의 응용 프로그램 매니페스트에 필요한 위험 권한. 장치가 안드로이드 5.1 이하 또는 앱의 대상 SDK가 22 이하인를 실행하는 경우

  • : 그러나, 선언의 효과는 시스템 버전과 응용 프로그램의 목표 SDK 수준에 따라 다르다 : 매니페스트에 위험한 권한을 나열하면 사용자는 앱을 설치할 때 권한을 부여해야합니다. 권한을 부여하지 않으면 시스템에 앱이 전혀 설치되지 않습니다.
  • 장치가 안드로이드 6.0 이상 및 앱의 대상 SDK가 23 이상인 실행하는 경우 : 응용 프로그램은 매니페스트에 권한을 나열 할 수 있으며, 앱을하는 동안 그것이 필요한 각 위험 권한을 요청해야합니다 달리는. 사용자는 각 권한을 부여하거나 권한을 부여 할 수 있으며 사용자가 권한 요청을 거부하더라도 앱이 제한된 기능으로 계속 실행될 수 있습니다.

당신이 Android 6.0에서 응용 프로그램을 실행하려면는 런타임에 요청 권한에 로직을 작성해야합니다.
하지만 이전 버전에서 앱의 동작이 변경되지는 않지만 해당 경우 설치시 권한이 요청됩니다.

관련 문제