본문 바로가기
개발/Google Developers korea 블로그

안드로이드 TV에서 새 권한 요청하기

by darksilber 2015. 9. 26.
반응형

출처 - http://googledevkr.blogspot.kr/

 

2015년 9월 24일 목요일

안드로이드 TV에서 새 권한 요청하기

게시자: Anirudh Dewani , 디벨로퍼 어드보케


안드로이드 6.0은 사용자가 앱에서 요청한 권한 부여를 보다 세부적으로 제어하고, 더 빠르게 앱을 설치할 수 있는 새로운 런타임 권한 모델을 도입했습니다. 또한 사용자가 언제든지 설정에서 이 권한을 취소할 수 있습니다. M 미리 보기에서 실행되는 앱이 새 권한 모델을 지원하는 경우, 사용자가 앱을 설치하거나 업그레이드할 때 어떠한 권한도 부여할 필요가 없습니다. 개발자는 사용자로부터 런타임 부여를 요청하는 권한을 확인하고 앱이 아직 해당 권한이 없으면 요청해야 합니다.

안드로이드 6.0에서 사용자로부터 런타임 부여를 요청하는 모든 권한을 표시하려면 -

adb shell pm list permissions -g -d 

RECORD_AUDIO
일반적으로 앱은 최대한 적은 수의 권한을 요청해야 합니다. 음성 검색은 Android TV 콘텐츠 검색 경험에서 핵심적인 부분입니다. 내부SpeechRecognizer를 사용해서 음성 검색을 활성화하는 경우 앱이 매니페스트에서 RECORD_AUDIO 권한을 선언해야 합니다. RECORD_AUDIO는 Android 6.0에서 런타임 중에 명시적 사용자 권한 부여가 필요합니다. Android TV Leanback 지원 라이브러리를 사용하는 경우 SpeechRecognizer대신 SpeechRecognitionCallback을 사용함으로써 앱이 런타임 중에 RECORD_AUDIO를 요청할 필요가 없습니다.



SearchActivity.java
안드로이드 TV Leanback Sample 리포지토리에서 커밋합니다.


mFragment = (SearchFragment) getFragmentManager()
                .findFragmentById(R.id.search_fragment);
if (!USE_INTERNAL_SPEECH_RECOGNIZER) {
   
    mSpeechRecognitionCallback = new SpeechRecognitionCallback() {
        
        @Override
        public void recognizeSpeech() {
            if (DEBUG) Log.v(TAG, "recognizeSpeech");
        
            // ACTION_RECOGNIZE_SPEECH
            startActivityForResult(mFragment.getRecognizerIntent(), REQUEST_SPEECH);
        }
    };
    mFragment.setSpeechRecognitionCallback(mSpeechRecognitionCallback);
}

SpeechRecognitionCallback이 설정되면 내부 SpeechRecognizer를 사용하는 대신 Android Leanback 지원 라이브러리를 통해 액티비티에서 음성 검색 작업을 처리할 수 있습니다. 그러면 앱에서 RecognizerIntent를 사용하여 음성 인식을 지원할 수 있습니다.

API 레벨 23을 대상으로 하는 Android TV 앱이 있다면, 앱을 업데이트하여 SpeechRecognitionCallback을 사용하고 매니페스트에서 RECORD_AUDIO 권한을 제거하십시오.
반응형

댓글