NFC读卡时,自己打开应用,请问如何解决?

When NFC reads the card, it opens the application by itself, how can I solve this problem?

NFC读卡时,自己打开应用,但我想打开这个应用才读NFC

 <activity
            android:name="MyActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustResize">
            <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/nfc_tech_filter" />
        </activity>

nfc_tech_intent_filter

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <tech-list>
        <tech>android.nfc.tech.IsoDep</tech>
    </tech-list>
</resources>

答案是不要将 intent-filter 和 tech-filter 放在清单中,这是导致 NFC 服务在读取匹配的 NFC 卡时打开您的应用程序的原因。

所以从清单中删除

<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/nfc_tech_filter" />

只需在您的活动 onResume 中使用 nfcAdapter.enableForegroundDispatch 或更好的 nfcAdapter.enableReaderMode API(以及 onPause 中禁用的方法)来读取 NFC当您的 App 已经 运行 并且在前台

时显示卡片