[안드로이드] 퍼미션 사용하기

반응형



이어지는 글
보안을 위한 퍼미션             
유저 ID 와 파일 접근    
퍼미션 사용하기           ◀ 현재 위치
퍼미션을 선언하고 강제하기
manifest 에 퍼미션 강제하기
임의의 퍼미션과 URI 퍼미션




< 퍼미션을 부여해야만 접근할 수 있습니다 >
읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥





퍼미션 사용하기

안드로이드의 기본적인 어플리케이션은 어떠한 퍼미션도 가지고 있지 않습니다.
이것은, 사용자 경험과 디바이스 상의 임의의 데이터에 악영향을 주지 않는것을 의미하지요.

디바이스의 보호된 기능을 사용하기 위해서는 매니페스트에 필요한 퍼미션을 선언하는 하나 또는 그 이상의 <uses-permission> 태그로 정의해야 합니다.

예를들어 SMS 메시지를 수신하는 모니터링 어플리케이션 예제라면,



어플리케이션은 설치 시점에서, 요청된 퍼미션을 선언하고 있는 어플리케이션 서명 확인을 기반으로.. 또는 사용자와의 상호작용에 기반해서 패키지 인스톨러에 의해 부여됩니다.

어플리케이션이 실행되는 동안에는 사용자와의 어떤 확인 절차도 이루어지지 않죠.

어플리케이션이 설치될 때 퍼미션이 있다면 원하는 기능을 사용할 수 있을텐데요,
퍼미션이 없다면 원하는 기능을 사용하려는 시도는 사용자에게 알려지지 않고 실패합니다.

퍼미션 실패는 종종 보안예외(SecurityException) 를 발생시키지만, 이것이 모든곳에서 발생하진 않는다고 하는군요;;;

예를들어, sendBroadcast(Intent) 메소드는 , 메소드 호출이 리턴된 후 데이터가 각각의 리시버에게 전달될 때 퍼미션들을 체크합니다. 그러므로 그곳에서 퍼미션 실패가 있었다면 예외는 발생하지 않습니다. 하지만 개발자들에게 가장 좋은 Log 라는 녀석을 이용하면 됩니다 ㅎ 대부분의 퍼미션 실패는 시스템 로그에 기록되니까요 ㅎ

시스템에 의해 제공되는 퍼미션은 Manifest.permission 에서 볼 수 있습니다.


프로그램이 동작하는 도중에 특정 퍼미션이 여러곳에서 강제될 수도 있습니다.
그런 사항들은 아래와 같습니다.
1. 시스템 내부에서 호출. 어플리케이션이 특정 함수 호출을 방지하기 위함입니다.

2. 액티비티 시작 시점. 어플리케이션이 다른 어플리케이션의 액티비티를 실행하는 것을 방지하기 위함이죠.

3. 브로드캐스트를 방송할 때와 수신할 때. 브로드캐스트 송수신을 제어하여 누가 받을 수 있고, 누가 보낼 수 있는가를 관리하기 위함입니다.

4. 컨텐트 프로바이더에 접근하여 작업하는 시점.

5. 서비스를 바인딩하거나 시작하는 시점.





끝~~









관련글
[안드로이드] 유저 ID와 파일 접근
[안드로이드] 보안을 위한 퍼미션(Permission)
[안드로이드] 어플리케이션 구조
[안드로이드] 안드로이드 매니페스트 파일





반응형

댓글

Designed by JB FACTORY