- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] Manifest에서의 exported="false"에 대한 주의점 본문
[Intro]
제가 이전에 세미나에서 발표 했던 내용과도 관련이 있는 내용이긴 합니다.
Activity를 안전하게 보호하기 위한 방법 중에서,
<activity> 태그에 있는 exported 속성을 false로 만들어서
다른 어플리케이션에서 접근 할 수 없게 만들 수 있었습니다.
그런데 exported ="false"속성은 다른 어플리케이션에서 전혀 보이지 않게 숨기는 속성이기 때문에,
재사용을 할 수 없다는, 다소 Activity 철학과는 살짝 거리가 있는 속성이기도 합니다.
뭐... 그래도 재사용 필요없는 Activity에겐 유용한 속성이긴 하지요.
[exported="false" 를 쓰면 안되는 상황이 있다고?]
예... 그렇습니다. 모든 상황에서 사용 가능한건 아닙니다.
원래 오늘 별 내용 없습니다. 간단한 메모 수준의 포스팅이죠.
exported="false" 속성을 사용하면 안되는 상황이 있는데,
바로 MAIN/LAUNCHER Activity에는 사용하면 절대 안됩니다.
모든 Activity들을 안전하게 만든다고 모두 exported="false" 속성을 주어서는 안됩니다.
MAIN/LAUNCHER Activity에 exported="false" 속성을 주면
다음과 같은 exception이 발생합니다.
ERROR/Rosie(255):
Launcher does not have the permission to launch Intent
{ action=android.intent.action.MAIN categories={android.intent.category.LAUNCHER}
flags=0x10200000 comp={kr.vizpei.blog/kr.vizpei.blog.TestActivity} }.
Make sure to create a MAIN intent-filter for the corresponding activity or use the exported attribute for this activity.
ERROR/Rosie(255):
java.lang.SecurityException: Permission Denial:
starting Intent { action=android.intent.action.MAIN categories=
{android.intent.category.LAUNCHER} flags=0x10200000
comp={kr.vizpei.blog/kr.vizpei.blog.TestActivity} }
from ProcessRecord{43851f00 255:com.htc.launcher/9999} (pid=255, uid=9999)
requires null
먼저 SecurityException이 발생 하고,
exported 속성을 true로 설정해 달라는 메세지가 출력됩니다.
절대로 MAIN/LAUNCHER Activity에 exported="false" 속성을 주지 맙시다!
출처 : http://blog.naver.com/PostList.nhn?blogId=visualc98&categoryNo=0&from=postList
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] 안드로이드 단말기 OS 버전 알아오기 (0) | 2013.06.03 |
---|---|
[안드로이드] Thread Kill (interrupt) (0) | 2013.05.31 |
[안드로이드] 실행중인 어플에서 다른 어플 실행시키기 (0) | 2013.05.31 |
[안드로이드] Activity에 대해서 - 객체 직렬화편(Serializable) (2) | 2013.05.31 |
[안드로이드] 실행중인 Service 목록, Process 목록 보기 (0) | 2013.05.21 |