2012-03-17 3 views
2

먼저 내가하는 일을 알려주십시오. 순서대로 세 가지 활동이 있습니다.특정 활동에서만 NFC 태그 읽기

활동 1 >> 활동 2 >> 활동 3. 이제 태그를 탭하면 Activity2에서만 NFC 태그를 읽고 싶습니다. Activity1 또는 Activity3에있을 때 내 앱에서 태그를 읽을 수 없어야합니다. 어떻게해야합니까? 활성화/비활성화 옵션이 있습니까? 같은 속성을 설정할 속성이 있습니까? 이 목적으로 설정에서 NFC를 활성화/비활성화하라는 메시지를 표시하고 싶지 않습니다.

답변

9

전경 응용 프로그램으로, 귀하의 응용 프로그램은 항상 터치 된 태그에 먼저 반응 할 수 있습니다. 따라서 사용자 활동에 대해 forgraoundDsipatch를 활성화하고 Activity1 및 Activity3에서 이벤트를 무시하고 Activity2에서 터치 된 태그의 정보를 처리하는 것이 필요합니다. 그렇지 않으면 앱이 감지 된 태그의 이벤트를 가져 오지 않으면 Android 용 디스패치 시스템이 적절한 애플리케이션을 계속 트리거하여 검색하고 발견하면 앱 상단에서 시작합니다. 전경 파견에 대한 자세한 내용은

은 이쪽을 봐 : http://developer.android.com/guide/topics/nfc/advanced-nfc.html#foreground-dispatch

+0

그래서 activity1 및 activity3에 대해 enableForegroundDispatch()에 null 매개 변수를 설정해야합니까? 그렇다면 onCreate()에서 수행했지만 null 포인터 예외로 인해 강제 닫기가 있습니다. 필자는 activity2에 대해 enableForegroundDispatch()를 사용했습니다. –

+2

필터 및 techLists에 null을 사용할 수 있지만 pendingIntent의 경우 태그 구문 분석을 처리 할 클래스를 지정해야합니다. PendingIntent pendingIntent = PendingIntent.getActivity ( this, 0, 새로운 의도 (this, getClass()). addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); –

+0

답장을 보내 주셔서 감사합니다. 그것은 나를 위해 일했다. –

0

Activity2에 관심이있는 NFC 의도에 대한 인 텐트 필터 만 설정하십시오. 예를 들어 Android NFC Demo AndroidManifest.xml을 참조하십시오.

+0

예, 그것은 내가 .. 내 문제는 내 응용 프로그램에서 한 최초의 일이었다, 어떻게 그것을 activity1에 나에다는 태그를 읽고 내 응용 프로그램을 방지 할 수 있습니다 활동 3. Activity2에서만 태그를 읽어야합니다. –