проблема с отправкой намерений NFC - PullRequest
1 голос
/ 20 сентября 2011

Я пытаюсь поиграться с моим новым устройством android и тегом nfc, где я написал очень простое приложение для обнаружения тега nfc. но как бы я ни пытался, я не смог заставить свое устройство начать свою деятельность при сканировании тега. вот что у меня есть:

простейшее занятие:

public class NFCIntentDispatch extends Activity{
    private TextView mText;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);
        setContentView(R.layout.intent_dispatch);
        mText = (TextView) findViewById(R.id.text);
    }
}

и menifest.xml

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

    <intent-filter>
        <action android:name="android.nfc.action.TAG_DISCOVERED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>            
</activity>

файл nfc_tech_filter.xml в разделе res / xml:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
    <tech>android.nfc.tech.IsoDep</tech>
    <tech>android.nfc.tech.NfcA</tech>        
    <tech>android.nfc.tech.NfcB</tech>
    <tech>android.nfc.tech.NfcF</tech>
    <tech>android.nfc.tech.NfcV</tech>
    <tech>android.nfc.tech.Ndef</tech>
    <tech>android.nfc.tech.NdefFormatable</tech>
    <tech>android.nfc.tech.MifareClassic</tech>
    <tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>

проблема:

всякий раз, когда тег сканируется, мое устройство (Nexus S 2.3.3) запускает только встроенную активность, называемую «новый собранный тег», но никогда не показывает выбор и не запускает мою активность. Любая идея, почему это происходит, спасибо за любую помощь.

1 Ответ

4 голосов
/ 20 сентября 2011

В документации Android есть ошибка, касающаяся тех-списка, что заняло у меня довольно много времени, чтобы разобраться в первую очередь. Вам нужно будет открыть список для каждого элемента, например, чтобы он заработал:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <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>
</resources>
...