2014-01-08 2 views
1

"android.nfc.action.NDEF_DISCOVERED"와 동일한 인 텐트 필터가있는 두 가지 활동이 내 응용 프로그램에서 특정 활동을 시작하려는 활동을 programaticaly로 알리는 방법이 있습니까 ndef 발견시 시작할 활동을 선택 하시겠습니까? 더 명확히 말하면 하나의 장치가 Activity1을 실행하고 있고 두 번째 장치가 Activity2를 실행 중입니다. 하나의 장치 또는 다른 장치에서 광선을 보낼 때마다 장치는 둘 다 동일한 의도 필터를 가지고 있기 때문에 어떤 작업을 시작할지 묻습니다. 어떤 레이아웃없이 스타일 NoDisplay으로,NDEF_DISCOVERED를 사용한 여러 활동

<activity 
      android:label="@string/app_name" 
      android:name=".Activity1" 
      android:screenOrientation="portrait" 
      > 
      <intent-filter > 
       <action android:name="com.example.activity1" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 

       <category android:name="android.intent.category.DEFAULT" /> 

       <data android:mimeType="text/plain" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:label="@string/app_name" 
      android:name=".Activity2" 
      android:screenOrientation="portrait" 
      > 
      <intent-filter > 
       <action android:name="com.example.activity2" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 

       <category android:name="android.intent.category.DEFAULT" /> 

       <data android:mimeType="text/plain" /> 
      </intent-filter> 
     </activity> 

답변

2

이 (말 RedirectorActivity를) 셋째, 눈에 보이지 않는 활동을 작성하고 최근 사용에서 제외 :

여기 내 매니페스트입니다. 그런 다음 해당 활동에만 intent-filter을 할당하고 (: RedirectorActivity) 필요한 모든 논리를 추가하여 정상적인 활동을 startActivity()으로 시작하고 마지막으로 finish()으로 리디렉터를 종료하십시오.

0

현재 실행중인 활동 우선 순위를 다른 우선 순위보다 높게 지정하려면 NFC 포 그라운드 발송 시스템을 사용해야합니다. Advanced NFC: Using the NFC Foreground Dispatch System을 참조하십시오. (question을 참조하십시오.)

또한 두 가지 작업을 시작할 때 서로 다른 유형의 NDEF 레코드를 사용하는 것이 응용 프로그램에 적합한 지 고려해 볼 수 있습니다. 이 경우 발신자는 어떤 활동을 시작해야할지 결정할 수 있습니다.