암시적 intent 예제

이 페이지의 나머지 부분에서는 의도가 작동하는 방식과 의도의 사용 방법을 설명합니다. 관련 정보는 다른 앱과의 상호 작용 및 콘텐츠 공유를 참조하세요. 암시적 의도대상 구성 요소를 지정하지 않고 수행할 작업을 대신 설명합니다. 이 작업은 위에서 언급한 setAction(), setData() 및 기타 다양한 API의 도움으로 설명됩니다. 의도를 수신 하는 안 드 로이드 시스템, 이 의도를 처리할 수 있는 모든 구성 요소에 대 한 장치를 검사. 여러 구성 요소가 단일 장치에서 의도를 처리할 수 있는 경우 사용자가 구성 요소를 선택할 수 있는 대화 상자가 열립니다. 그렇지 않으면 선택한 구성 요소를 직접 시작합니다. 다음은 원하는 작업을 지정하기 위해 추가 데이터를 추가하는 몇 가지 의도입니다: 주의: 앱이 안전한지 확인하려면 서비스를 시작할 때 항상 명시적 의도를 사용하고 서비스에 대한 의도 필터를 선언하지 마십시오. 암시적 의도를 사용하여 서비스를 시작하는 것은 의도에 응답할 서비스를 확신할 수 없고 사용자가 어떤 서비스가 시작되는지 알 수 없기 때문에 보안 위험이 있습니다. Android 5.0(API 수준 21)으로 시작하여 암시적 의도를 가진 bindService()를 호출하는 경우 시스템에서 예외를 throw합니다. 이는 선택 사항이지만 의도를 명시적으로 만드는 중요한 정보이므로 의도는 구성 요소 이름으로 정의된 앱 구성 요소에만 전달되어야 합니다.

구성 요소 이름이 없으면 의도가 암시적이며 시스템은 아래에 설명된 작업, 데이터 및 범주와 같은 다른 의도 정보를 기반으로 의도를 수신해야 하는 구성 요소를 결정합니다. 앱에서 특정 구성 요소를 시작해야 하는 경우 구성 요소 이름을 지정해야 합니다. 또한 Android에서는 MAIN 및 LAUNCHER 항목을 포함하지 않는 암시적 의도를 처리할 수 있는 모든 활동에 의도 필터에 소위 눈썹 및 기본 범주도 포함해야 합니다. 따라서 수정된 의도 필터 섹션은 다음과 같이 읽어야 합니다: 참고: 캘린더 이벤트에 대한 이 의도는 API 수준 14 이상에서만 지원됩니다. 위의 이미지 활동 A를 관찰하는 경우 필요한 작업으로 의도를 만들고 startActivity() 메서드를 사용하여 Android 시스템으로 보냅니다. Android 시스템은 모든 앱의 의도와 일치하는 의도 필터를 검색합니다. 일치가 발견될 때마다 시스템은 onCreate() 메서드를 호출하여 활동(활동 B)을 일치시게 됩니다. 다음 예제는 ACTION_SEND 의도에 대한 활동을 등록합니다. 텍스트/일반 마임 형식에 대해서만 관련성이 있는 것으로 선언합니다. 암시적 의도를 사용하여 수행할 수 있는 응용 프로그램의 양은 많습니다. 몇 가지 예는 다음과 같습니다:이 블로그 게시물에서 우리는 암시적 의도에 대해 설명 할 것입니다, 다음 블로그에서 우리는 명시 적 의도에 대해 논의 할 것이다.

데이터 테스트는 의도의 URI 및 MIME 형식을 필터에 지정된 URI 및 MIME 형식과 비교합니다. 규칙은 다음과 같습니다 : 당신은 특정 이벤트에 대한 의도 필터를 통해 안드로이드 구성 요소를 등록 할 수 있습니다. 구성 요소가 하나를 정의하지 않는 경우 명시적 의도에서만 호출할 수 있습니다. 이 장에서는 의도에 대한 구성 요소를 등록하는 예제를 제공합니다. 이 등록의 핵심은 구성 요소가 올바른 작업을 위해 등록하고 mime-type을 지정하고 올바른 메타 데이터를 지정한다는 것입니다. d). startActivity() 메서드는 의도에 의해 지정된 열기를 위해 웹 페이지를 호출하기 시작합니다. 그러면 createChooser() 메서드에 전달된 의도에 응답하는 앱 목록이 있는 대화 상자가 표시되고 제공된 텍스트를 대화 상자 제목으로 사용합니다. 이러한 의도를 시스템에 전송하는 경우 Android 시스템에서 이 의도에 대해 등록된 모든 Android 구성 요소를 결정합니다.

이 의도에 대해 여러 구성 요소가 등록된 경우 사용자는 사용할 구성 요소를 선택할 수 있습니다. 하위 활동은 finish() 메서드를 사용하여 새 의도를 만들고 데이터를 넣습니다. 또한 setResult() 메서드 호출을 통해 결과를 설정합니다. 의도를 만들고 추가 정보를 설정하면 startActivity())를 호출하여 시스템으로 보냅니다. 시스템에서 의도를 처리할 수 있는 두 개 이상의 활동을 식별하는 경우 그림 1과 같이 사용자가 사용할 앱을 선택할 수 있는 대화 상자(“모호성 대화 상자”라고도 함)가 표시됩니다.

Posted in Uncategorised