2014-10-15 5 views
-1

Activity 용 매니페스트 파일에 필수 인 텐트 필터가 선언되었습니다.NFC 태그에 의해 활동이 시작되지 않았습니다.

시나리오 # 1 : 내가 NFCDemo 안드로이드 샘플 응용 프로그램 테스트시 -> 광범위한 캐스트 NFC 태그 -> 내 응용 프로그램이 다른 NFC 응용 NFC 태그 정보 & NXP 태그 정보와 같은 선택기 대화 상자에 메시지가 표시되는 시간입니다.

시나리오 # 2 : 실제 NFC 태그 (카드) -> NFC TagInfo를 스 와이프 한 후 TagInfo 앱은 선택기 대화 상자에 메시지가 표시되지만 앱에는 표시되지 않습니다.

내 요구 사항 -> 내 앱도 NFC 태그 정보 앱처럼 표시되어야합니다. 자세한 정보 -> 그 빈 카드!. 당신의 NFC 태그는 필터와 일치하는 NDEF 메시지가 포함되어있는 경우

<intent-filter> 
    <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="*/*" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.nfc.action.TAG_DISCOVERED" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
<intent-filter> 
    <action android:name="android.nfc.action.TECH_DISCOVERED" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter>  
<meta-data 
    android:name="android.nfc.action.TECH_DISCOVERED" 
    android:resource="@xml/supporting_nfc_techlist" /> 
+1

빈 카드는 NDEF 형식이며, 그렇지 않은 경우 – VGe0rge

+1

추신 : support_nfc_techlist 파일 – VGe0rge

+0

@ VGe0rge를 보여주십시오. 문제는 support_nfc_techlist에만 있으며, Michale Roland의 답변으로 문제를 해결하는 데 도움이되었습니다. 고마워요 VGe0rge –

답변

3

NDEF_DISCOVERED 의도 필터는 트리거됩니다. 일반적으로 특정 레코드 유형 (예 : 특정 MIME 유형, 특정 NFC 포럼 외부 유형 이름 또는 특정 URI (-prefix))에 대한 필터를 지정해야합니다. "*/*"에 MIME 유형 필터를 사용하면 일부 장치에서 작동하지 않습니다.

TAG_DISCOVERED 인 텐트 필터는 일반적으로 앱 매니페스트에서 사용하지 않아야합니다. 현재의 안드로이드 버전에서는 주로 포 그라운드 디스패치 시스템과 함께 사용되며 태그 발견 이벤트에 대해 다른 활동이 등록되지 않은 경우 폴백 (fall back)됩니다.

TECH_DISCOVERED 인 텐트 필터는 supporting_nfc_techlist.xml 파일에 정의 된 태그 기술을 필터링합니다. 당신이 어떤 태그를 감지하려는 경우 예를 들어, 다음과 같이 필터를 사용할 수 있습니다 안드로이드 문서의 예는 오해의 소지가

<?xml version="1.0" encoding="UTF-8"?> 
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 
    <tech-list> 
    <tech>android.nfc.tech.NfcA</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.NfcB</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.NfcF</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.NfcV</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.IsoDep</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.MifareClassic</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.MifareUltralight</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.NdefFormatable</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.Ndef</tech> 
    </tech-list> 
    <tech-list> 
    <tech>android.nfc.tech.NfcBarcode</tech> 
    </tech-list> 
</resources> 

하는 것으로. 테크리스트는 논리적 인 또는과 결합되며, 하나의 기술 목록 내의 기술 항목은 논리적 인 과 결합됩니다.

<tech-list> 
    <tech>android.nfc.tech.NfcA</tech> 
    <tech>android.nfc.tech.NfcB</tech> 
</tech-list> 

가 (과 X = {A, B, F를 NfcX으로 불가능 NfcAANDNfcB (결합 수단하면서 따라서

<tech-list> 
    <tech>android.nfc.tech.NfcA</tech> 
</tech-list> 
<tech-list> 
    <tech>android.nfc.tech.NfcB</tech> 
</tech-list> 

NfcAORNfcB 수단 V}) 기술 유형은 상호 배타적입니다.

+0

@Michale Roland, 하나의 변경을했습니다. 내 support_nfc_techlist.xml의 내용을 사용자가 제공 한 것으로 바꾸었고 내 앱이 대화 목록에 표시되었습니다. 그럼 내가 두 파일을 비교, 차이점은, 당신은 하나의 기술 목록 태그에 모든 것을 그룹화 한 것처럼 별도의 tehc-list 태그에서 각 기술 유형을 언급했다는 것입니다. 대답 해 주셔서 대단히 감사합니다. –

+0

@PavanKunchapu에 대한 답변이 업데이트되었습니다. –

+0

@Michale Roland, 훌륭한 설명을 주신 Michale. 나는 기술 목록을 효율적으로 사용하는 방법을 생각하고 있었고 이제 귀하의 대답이 명확 해집니다. –

관련 문제