2013-02-14 2 views
1

빈 태그를 감지하는 데 문제가 있습니다. 빈 태그를 의미하는 것은 NdefRecord.TNF_EMPTY 타입의 레코드를 가진 Ndef 태그입니다. 내 응용 프로그램이 모든 태그로 시작되지만이 종류의 콘텐츠에 문제가 있습니다.NFC 빈 태그가 감지되면 Android 응용 프로그램이 실행되지 않습니다.

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

나는 NDEF 태그 어쨌든 내 techlist가 제대로 감지하기 때문에 techlist이 문제가 아니라고 생각이

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 
<tech-list> 
    <tech>android.nfc.tech.IsoDep</tech> 
</tech-list> 
<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.Ndef</tech> 
</tech-list> 
<tech-list> 
    <tech>android.nfc.tech.NdefFormatable</tech> 
</tech-list> 
<tech-list> 
    <tech>android.nfc.tech.MifareClassic</tech> 
</tech-list> 
<tech-list> 
    <tech>android.nfc.tech.MifareUltralight</tech> 
</tech-list> 

"NFC 작업 시작"과 "태그"응용 프로그램을 할 수 있습니다 이러한 종류의 콘텐츠를 감지 할 수 있습니다.

는 "TagInfo에"응용 프로그램은 NDEF

Empty record 
type: [NULL] 
payload length: 0 bytes 

감사로 태그를 감지합니다.

+0

기술 목록 조각에 ''태그가 없습니다. 하지만 그것은 당신의 techlist xml 파일에 있습니다, 맞습니까? – martijno

답변

1

이 문제를 테스트하는 데 여러 시간이 걸리긴했지만 문제가 해결되었지만 왜 이런 일이 발생하는지 알지 못합니다.

문제는 AndroidManifest.xml에 코드의 조각입니다

<intent-filter> 
    <action android:name="android.nfc.action.TECH_DISCOVERED" /> 
    <meta-data android:name="android.nfc.action.TECH_DISCOVERED" 
      android:resource="@xml/techlist" /> 
</intent-filter> 

나는

<intent-filter> 
    <action android:name="android.nfc.action.TECH_DISCOVERED" /> 
</intent-filter> 
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/techlist" /> 

그냥 문제가있다 "메타 데이터"태그를 복용 방법으로 변경 그러나 왜 해결 되었습니까?

+0

[ 정의] (http://developer.android.com/guide/topics/manifest/intent-filter-element.html)는 ''요소를 허용하지 않기 때문에. –

+1

그래, 감사합니다 NFC 사람, 어쨌든 메타 데이터 태그가 의도 필터 내부에 허용되지 않으면 컴파일러는 뭔가를 말해야합니다. – Tx33

+0

직접 컴파일러가 아닌, 린트 (Hint) 경고가 중요한 힌트 였을 것입니다. –

관련 문제