我有以下代码
val pendingIntent = PendingIntent.getActivity(activity, 101,
Intent(activity,classType).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), PendingIntent.FLAG_IMMUTABLE)
val nfcIntentFilter = IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED)
val filters = arrayOf(nfcIntentFilter)
val TechLists = arrayOf(arrayOf(Ndef::class.java.name),
arrayOf(NdefFormatable::class.java.name))
nfcAdapter.enableForegroundDispatch(activity, pendingIntent, filters, TechLists)``
在活动中我试图获取标签、操作、消息
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val type: String? = intent.type
val action: String? = intent.action
}
然而,action 已经存在,tag 也为 null:
val tag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
it.getParcelableExtra(NfcAdapter.EXTRA_TAG,Tag::class.java)
} else {
it.getParcelableExtra<Tag>(NfcAdapter.EXTRA_TAG)
}
在清单中,我的活动标签内有以下内容:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain"/>
</intent-filter>
我也启用了权限:
<uses-permission android:name="android.permission.NFC" />
尝试了多个代码并将意图过滤器 NDEF_DISCOVERED 更改为 TAG_DISCOVERD 但一切都失败了。我也在三部独立的手机上进行了测试,也出现了同样的问题。 onNewIntent 被调用但意图不提供信息
我也有同样的问题。
我想知道是否有任何地方有一个真正有效的完整示例(2023 年)并且可以解释正在发生的事情。我已经观看了几个关于该主题的半完整 YouTube 视频并遵循了指南,但它们似乎根本不起作用。