[안드로이드] 퍼미션을 선언하고 강제하기
- 프로그래밍 정보
- 2010. 11. 8.
반응형
이어지는 글
보안을 위한 퍼미션
유저 ID 와 파일 접근
퍼미션 사용하기
퍼미션을 선언하고 강제하기 ◀ 현재 위치
manifest 에 퍼미션 강제하기
임의의 퍼미션과 URI 퍼미션
보안을 위한 퍼미션
유저 ID 와 파일 접근
퍼미션 사용하기
퍼미션을 선언하고 강제하기 ◀ 현재 위치
manifest 에 퍼미션 강제하기
임의의 퍼미션과 URI 퍼미션
읽기전에 손가락 한번 클릭~ >_<
고마워요 ~ Chu ~ ♥
퍼미션을 선언하고 강제하기
우선, 퍼미션을 사용하기 위해서는 하나 이상의 <permission> 태그를 사용해서 매니페스트 파일에 그것들을 선언해야 합니다.
예를들어, 자신의 액티비티들 중에서 하나를 시작할 수 있는가를 제어하길 원하는 어플리케이션이 있다면, 아래와 같은 방식으로 이런 작업에 대한 퍼미션을 선언할 수 있습니다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.me.app.myapp" > | |
<permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY" | |
android:label="@string/permlab_deadlyActivity" | |
android:description="@string/permdesc_deadlyActivity" | |
android:permissionGroup="android.permission-group.COST_MONEY" | |
android:protectionLevel="dangerous" /> | |
</manifest> |
사용자가 퍼미션을 요구하는 어플리케이션들을 어떻게 알게되는지, 또는 해당 퍼미션을 보유하는것이 누구에게 허용되는지를 시스템에 알려주기 위해서는 <protectionLavel> 속성을 사용하세요.
여기에서 <permissionGroup> 속성은 선택사항이며, 단지 시스템이 사용자에게 퍼미션을 표시하는것을 돕는 역할을 합니다. 일반적으로 표준 시스템 그룹을 이곳에 설정할 수 있고, 드문 경우겠지만 직접 정의한것을 설정할 수도 있다고 합니다.
사용자에게 보여지는 퍼미션 UI를 단순화하려면, 기존에 존재하는 퍼미션 그룹을 사용하는것이 권장됩니다.
퍼미션을 위해서는 라벨(label) 과 설명(description) 두 가지를 제공해야 합니다.
이것은 문자열 리소스로서,
⊙ android:label - 사용자가 퍼미션 리스트를 볼 때 표시됩니다.
⊙ android:description - 한 개의 퍼미션을 상세히 볼 때 표시됩니다.
라벨은 퍼미션이 보유하고있는 기능의 핵심 부분을 몇개의 단어로 기술할 수 있게 간결한게 좋겠죠?
설명은 그 퍼미션을 보유한 것에게 무엇이 허용되는지를 설명하는 두 개의 문장으로 기술됩니다.
첫 번째 문장은 퍼미션을 설명하는 것이며, 두번째 문장은 어플리케이션에 해당 퍼미션이 부여되었을 때 발생할 수 있는 나쁜 영향은 무엇인지를 사용자에게 알려주는게 좋습니다.
CALL_PHONE 퍼미션에 대한 라벨과 설명 예제
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<string name="permlab_callPhone"> 전화번호를 직접 호출 합니다. </string> | |
<string name="permdesc_callPhone">응용 프로그램이 호출을 허용합니다. | |
당신의 동의없이 전화번호를 호출합니다. | |
악성프로그램이나, 전화요금은 발생시키지 않습니다. | |
비상시 전화번호를 호출하는 응용프로그램을 허용합니다.</string> |
shell 명령어인 - adb shell pm list permissions - 을 사용하면, 시스템에 현재 정의되어있는 퍼미션들을 볼 수 있습니다. 특히 " -s " 옵션을 덧붙이게 되면 사용자가 퍼미션을 보는 방식과 비슷한 형식으로 퍼미션을 보여줍니다!
주의하실 점!!!!!!!!!!!!!!!!!!!!!!
adb shell pm list permissions 에서 퍼미션 끝에 's' 를 꼭 붙이세요!!
"permission" 아니죠 ~ "permissions" 맞습니다~^^;
끝~~
관련글
[안드로이드] 퍼미션 사용하기
[안드로이드] 유저 ID와 파일 접근
[안드로이드] 보안을 위한 퍼미션(Permission)
[안드로이드] 어플리케이션 구조
[안드로이드] 안드로이드 매니페스트 파일
반응형
작가 남시언님의
글이 좋았다면 응원을 보내주세요!