-
Android Q - RoleManager안드로이드 2019. 4. 12. 19:57
Android Q
최근에 Android Q API가 배포되었습니다. 다양한 API가 있는데 이중 RoleManager 라는 API에 대해 알아보도록 하겠습니다. API의 내용을 보면 다음과 같습니다.
Android Q에서는 앱에서 잘 알려진 사용 사례에 따라 시스템 기능과 사용자 데이터에 액세스할 수 있도록 높은 권한을 부여하는 표준 기능인 역할을 도입했습니다. 의미상 각 역할은 음악 재생, 사진 관리, SMS 메시지 보내기 등의 일반적인 사용 사례를 나타냅니다.
베타 1 출시에서는 Android Q에 대해 미리 정의된 역할 집합이 플랫폼에 제공됩니다. 앱에서는 새 RoleManager 클래스를 사용하여 사용 가능한 역할을 쿼리하고 특정 역할을 보유하도록 요청할 수 있습니다.
Android Q에서 역할이 앱 동작에 미치는 영향에 대한 자세한 내용은 역할 미리보기 가이드를 참조하세요.여기서 말하는 역할이란 특정 기능을 실행하는 앱 유형을 말하는데요. Android Q에서 볼수 있는 역할은 브라우저, 전화, 갤러리, 홈, 음악, SMS 등이 있습니다.
API의 장점
API의 장점으로는 내 App이 기본 연결 프로그램인지 확인할 수 있고, 그렇지 않다면 간단하게 권한을 요청할 수 있습니다. 이제 이러한 기본 연결 프로그램 설정에 더욱 더 쉽고 많은 권한을 가지고 제어할 수 있습니다.
API 이용 시 주의사항
RoleManager 사용하기 위해서는 Manifest내의 intent-filter 안에 category를 추가하고, permission을 추가하여야 합니다. 위와 같은 설정을 해주지 않을 시에는 자동적으로 요청이 취소됩니다.
예를 들어서, 인터넷 브라우저 앱의 경우에는 CATEGORY_APP_BROWSER를 LauncherActivity의 Intent-Filter안에 정의해주어야 합니다. 위와 같은 작업을 하지 않고 RoleManager를 통해서 작업을 요청시, 사용자에게 메세지를 보내지않고 권한이 거부됩니다.
사용법
Step 0
Compile을 Android-Q로 설정해줍니다.
Step 1
Manafest파일에 Permission, intent-filter내에 category 를 추가해줍니다.
권한을 조정할 수 있는것들은 다음과 같습니다.
ROLE_BROWSER
ROLE_DIALER
ROLE_SMS
ROLE_HOME
ROLE_MUSIC
ROLE_GALLERY
Step 2
다음 메서드를 통해서 해당 앱이 기본 연결프로그램으로 사용할 수 있는지 확인합니다.
Step 3
다음 메서드를 통해서 해당 앱이 기본 연결프로그램으로 현재 사용되고 있는지 확인합니다.
Step 4
다음 메서드를 통해서 Intent 요청을 생성하여 startActivityForResult를 실행합니다.
Step 5
사용자가 Permission을 수락하면 onActivityResult는 Result.OK를 리턴할 것이고, 수락을 하지 않거나 메니페스트 설정이 제대로 되어있지 않는다면 RESULT_CANCELED를 리턴할 것입니다.
Step 6
다음과 같은 화면이 Display됩니다.
위처럼 이번에 Android Q가 배포되면서 기본 연결 프로그램을 손쉽게 설정할 수 있는 방법이 생겼습니다.
위의 전체 깃 코드는 깃허브를 보시면 올려놓았습니다.
세계 최강을 꿈꾸는 안드로이드 Front-End 개발자입니다.
Github 주소: github.com/rkswlrbduf
이전 블로그 주소: blog.naver.com/rkswlrbduf => 블로그 이전중...
'안드로이드' 카테고리의 다른 글
아키텍처 패턴 - RAW, MVC, MVP (1) 2019.04.12 안드로이드 생명주기-Android LifeCycle (0) 2019.04.12 Linked List VS Array List (0) 2019.04.12 RxKotlin + Retrofit2 + GitHub API (0) 2019.04.12 ConstraintLayout 살펴보기 (0) 2019.04.12 댓글