如何避免在 android 中检测到 NFC 标签?

How to avoid detection of NFC tag in android?

我正在制作一个带有 NFC 的应用程序。我希望检测在某些活动或片段中被禁用或掉落(没有振动、没有声音、没有应用程序选择器对话框、没有检测通知)。

这可能吗?

我只是在清单中使用 SingleTop 并像这样使用 Intent

Manifests.xml

    <activity
        android:name=".ui.MainActivity"
        android:launchMode="singleTask"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />

            <category android:name="android.intent.category.DEFAULT" />

            <data
                android:host="example.com"
                android:scheme="http"/>
        </intent-filter>
    </activity>

MainActivity

val intent = Intent(this, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)

这是因为 default wallet。某些设备可以在 NFC 设置中选择 NFC reader。你需要把它关掉。我从未尝试过检测通知并将其关闭的解决方案。有NotificationListenerService。如果你想禁用所有通知,你得调查一下。