2013-05-16 1 views
9

매니페스트에 지정된 인 텐트 필터 태그에 대한 추가 정보가 필요합니다.안드로이드 매니페스트에서 인 텐트 필터 아래에 구성 할 수있는 스킴 및 호스트 태그의 수

<intent-filter> 
    <data android:host="com.myHost" android:scheme="content"/> 
</intent-filter> 

AND : 나는 우리가 두 가지 형태로 데이터를 지정할 수 있다는 것을 알고

<intent-filter> 
    <data android:scheme="content"/> 
    <data android:host="com.myHost"/> 
</intent-filter> 

하지만

<intent-filter> 
     <data android:host="com.myHost" android:scheme="content"/> 
     <data android:scheme="content"/> 
     <data android:host="com.myHost1"/> 
</intent-filter> 

또는 같은 여러 조합이 존재할 수 있습니다 알고 싶은 :

<intent-filter> 
     <data android:host="com.myHost" android:scheme="content"/> 
     <data android:scheme="content"/> 
     <data android:host="com.myHost1"/> 
     <data android:scheme="content"/> 
     <data android:host="com.myHost2"/> 
</intent-filter> 

마지막 경우에 나는 이것이 존재할 수 있는지 첫째로 알아야 함 & & 스키마를 포함하는 데이터 태그가 어떤 순서로든 발생할 수 있으므로 어떤 체계에 어떤 체계를 사용해야하는지 결정하는 방법.

도와주세요.

+1

데이터 태그를 두 의도 필터를 만들 수 있습니다. http://developer.android.com/guide/components/intents-filters.html의 Google 문서에서 요소에서 각 속성은 선택 사항이지만 선형 종속성이 있습니다. 스키마가 아닌 경우 지정된 경우 호스트는 무시됩니다. 호스트를 지정하지 않으면 포트가 무시됩니다. 스키마와 호스트를 모두 지정하지 않으면 경로가 무시됩니다. – gleenn

답변

10

는 우리가 당신이 진정으로 당신이 ContentProvider의 지원 활동을 만드는 것을 의미하지 않는 한 계획에 대한 content를 사용하지 마십시오 두 가지 형태

의 데이터를 지정할 수 있음을 알고 있습니다.

<activity 
     android:name=".activities.ShowOrCreateActivity" 
     android:theme="@android:style/Theme.Translucent.NoTitleBar"> 

     <intent-filter> 
      <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="mailto" /> 
      <data android:scheme="tel" /> 
     </intent-filter> 
    </activity> 
:

하지만 필터는 <data> 단지 하나 개의 속성이있는 경우 여러 조합이

존재 할 수있는 알고 싶은, 당신은 확실히 같은 연락처 응용 프로그램에서이 같은 다른 값을 가질 수

또한 하나의 구성 요소에는 여러 개의 <intent-filter> 요소가있을 수 있으며 각 요소는 다른 요소와 논리적으로 OR됩니다 (모든 필터와 일치하는 모든 요소는 구성 요소와 일치합니다). 따라서 더 복잡한 시나리오의 경우 <data> 요소 당 2 개 이상의 속성이있는 경우 해당 요소를 <intent-filter> 요소에 넣을 수 있습니다. 그것은 어떤 계획

에 대한 모든 경기가 좋은 것으로 간주됩니다 사용할 수있는 호스트로 결정 얼마나

. Intent을 검토하여 그 내용에 대해 자세히 알아보십시오.

+0

정말 고마워! 따라서 어떤 앱이 두 개의 콘텐츠 및 호스트 조합을 지정해야하는 경우 두 개의 인 텐트 필터에 넣어야합니다. – AndroidGuy

+1

모든 경우에 작동하지 않으며, 안드로이드 문서에서는 "참고 : 의도 필터에는 URI 패턴에 대한 단일 데이터 요소 만 포함될 수 있습니다. 추가 URI 패턴을 캡처하기 위해 별도의 의도 필터를 만듭니다." – htafoya

2

@CommonsWare 답을 보완하면 매우 구체적이지 않은 경우 두 개의 <data> 태그를 사용할 수없는 것처럼 보입니다.

A) 내 애플 리케이션 중 하나에서 내가 가질 수

<data android:scheme="myAppScheme1"/> 

B) 그리고

<data android:scheme="myAppScheme2" android:host="host2"/> 

C) 그러나 첫 번째 태그를 무시 다음은 (URI가 작동하지 않습니다 myAppScheme1://whatever 사용) :

<data android:scheme="myAppScheme1"/> 
<data android:scheme="myAppScheme2" android:host="host2"/> 

D) 그러나 첫 번째 구성을 보완하면 URIS :

<data android:scheme="myAppScheme1" android:host="host1"/> 
<data android:scheme="myAppScheme2" android:host="host2"/> 

아마 당신이 정말로 케이스 C를 필요로하는 경우), 당신은 더 나은 방식을 완전히 무시하도록 지정된 호스트와