Android 上的 NFC 读/写

问题描述 投票:0回答:1

我有以下代码

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 被调用但意图不提供信息

android kotlin nfc
1个回答
0
投票

我也有同样的问题。

我想知道是否有任何地方有一个真正有效的完整示例(2023 年)并且可以解释正在发生的事情。我已经观看了几个关于该主题的半完整 YouTube 视频并遵循了指南,但它们似乎根本不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.