2014-11-06 2 views
1

여러 유형의 NDEF 레코드에 대한 인 텐트 필터 설정 구문을 설명 할 수 있습니까? '외부'유형 레코드를 사용하여 NFC 태그에 바이너리 데이터를 쓰는 Android 앱을 가지고 있지만 태그가 'text/plain'의 mimeType으로 응답하는 호스트에 연결되어 있습니다.여러 NFC 유형에 대한 Android 인 텐트 필터

Android 휴대 전화에서 두 가지 유형 모두를 읽고 쓸 수 있기를 바랍니다.

인 텐트 필터를 해당 유형에 맞게 설정하고 태그 데이터가 해당하는 경우 하나 (다른 하나는 텍스트/일반 또는 내선)를 읽을 수 있지만 그와 같은 목록을 수정하는 방법을 모르겠습니다. 앱이 해당 유형 중 하나에 대해 열립니다.

감사합니다.

<activity 
    android:name="com.example.mYapp.MainActivity" 
    android:label="@string/app_name" 
    android:screenOrientation="portrait" 
    android:launchMode="singleTask"> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <!-- <data android:mimeType="text/plain" /> --> 
     <data android:pathPrefix="/prefix:r" android:host="ext" android:scheme="vnd.android.nfc" /> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

답변

1

당신은 일치 할 때 중 하나는 URI (즉, 외부 입력 이름이 의도에 전달되는 방법), 두 개의 별도의 텐트 필터를 선언 할 필요가 (텍스트/일반) 또는 MIME 타입 그들을 위해. 그렇지 않으면 안드로이드의 인 텐트 필터 매칭 로직은 URI와 MIME 유형을 모두 포함하는 인 텐트와 일치하려고 시도합니다.

<activity ...> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    <intent-filter> 
     <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:pathPrefix="/prefix:r" android:host="ext" android:scheme="vnd.android.nfc" /> 
    </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>