안녕하세요. 

안드로이드  소개자료를  보다 보면  평등한  Application  이라는 이야기 많이 나옵니다.

이 의미는   구글에서 제공하는 기본 프로그램  모두      원한다면   자신이 직접 만들  프로그램으로 교체할 수가 있다고 하더군요.


http://www.androidpub.com/48937

위 링크의 글에서   인텐트 를 이용하여  암묵적인 호출을  할때,   URI 가 어떻게  해석이 되고 있는지  설명을 하였는데요.

원래 원하던  

인텐츠에 포함된 URI 가  해석된 후에     어떻게   구체적인  Activity 에 연결이 되는지는 못 찾았답니다.

이 부분을 책에서 찾아보면,

"Uri 로 이뤄진  인텐츠를  안드로이드 시스템에 전달하면, 안드로이드는  지정된  특정 항목을 표시할 수 있는  액티비티를 찾아 실행한다"

이 이야기는  여러책에 나오는 이야기 이죠.
전  구체적으로 어떻게  찾는 지를 확인하고 싶었는데요. 
아직은 못찾았답니다.   ( 이 궁금증은  나중에 찾는 것으로 미루어 두고 ...)



더 재미 있는 것은 ,

그럼 똑같은  URI 를  표시할 수 있는  Activity를  내가 만들어 넣으면,  어느 것이 먼저 뜰가가 궁금해 지더군요.
이런 순서는 누가 정하는지?  OS의 설정을  수정해야하는 것인지 등이요?


그래서,   Camera 소스중에    ImageGallery   액티비티의   인텐트 필터 값을  그대로 복사해 다가  
새로운 액티비티를 하나 만들어서 실행해 보았습니다.


ImageGallery   의  인텐트 필터 내용과   인텐트를 호출하는  방법은  
http://www.androidpub.com/48937
위 링크에 있습니다.


android_pro.png

그랬더니,  위  캡처 사진 처럼    
원래의  카메라   와   제가 샘플로 만든  Video 란 프로그램  중에   어떤것을 쓸것인지 선택하는 UI 가  자동으로 나오더군요.

아래는 
"이 작업에 대해 기본값으로 사용"
이라는 체크 버튼도 있네요 ^^


아래 체크 버튼을  선택하고,   한번 실행을 하면   다음 번 실행은  자동으로  선택했던 프로그램이 실행되더군요.



"평등한  APP" 란  말의  의미를  체감하는 순간 이었습니다.


프로그램 전체를 바꿀 수도 있고,    위와 같이 프로그램의  일부만 교체할 수도  있더군요. 

일부만 교체할 경우에는    "암묵적인 인텐트 호출" 을  사용하여야만 되겠지만요.




***  위 그림처럼  특정한 APP를  기본값으로  정한 경우,    다시  바꾸는 방법을 아직 못 찾았습니다 ^^
아시는 분 가르쳐 주세요.   uninstall 을 해야 하는 건가.... ?



감사합니다.