Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以从Android设备对NFC标签执行多个读写操作_Android_Nfc_Ndef_Nfc P2p - Fatal编程技术网

是否可以从Android设备对NFC标签执行多个读写操作

是否可以从Android设备对NFC标签执行多个读写操作,android,nfc,ndef,nfc-p2p,Android,Nfc,Ndef,Nfc P2p,我一直在研究是否可以使用Android应用程序在NFC设备上执行多个读写操作。我发现Android Beam用于两台设备之间的对等(P2P)类型的数据交换,但这是否意味着另一台非Android设备必须是P2P NFC标签。因为我当前使用的标记是使用NDEF的Type4标记 将手机放在同一个位置,是否可以使用NFC设备执行多个读写操作?因为目前我只能让它工作,你把手机放在NFC标签上,它读取,然后你必须把手机移开,再做一次,以再次执行交易。这显然是读取NFC标签的自然过程 请任何人帮我解决这个难题

我一直在研究是否可以使用Android应用程序在NFC设备上执行多个读写操作。我发现Android Beam用于两台设备之间的对等(P2P)类型的数据交换,但这是否意味着另一台非Android设备必须是P2P NFC标签。因为我当前使用的标记是使用NDEF的Type4标记

将手机放在同一个位置,是否可以使用NFC设备执行多个读写操作?因为目前我只能让它工作,你把手机放在NFC标签上,它读取,然后你必须把手机移开,再做一次,以再次执行交易。这显然是读取NFC标签的自然过程


请任何人帮我解决这个难题,或者给我一些建议。首先,这里没有点对点NFC标签。设备可以是对等设备或NFC标签,但不能同时是两者。(请注意,设备仍可以支持两种模式,但不能同时在两种模式下进行通信。)

因此,如果您与NFC标签(如您的NFC论坛类型4标签)进行通信,则会涉及到点对点模式(因此Beam)。在Android上,您可以使用NFC标签或非接触式智能卡进行通信(真实、双向通信)

对于Type4标记,当发现标记时,首先检索NFC意图。您可以通过在应用程序清单中注册特定NDEF记录或标记类型或使用系统(即,如果您想在活动已在前台时检测标记)来完成此操作。下一步是从intent获取标记句柄(
tag
object):

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
对于类型4标记,您有两个选项。如果您希望使用NDEF消息读/写操作与标记通信,您将获得标记的
NDEF
对象:

Ndef ndefTag = Ndef.get(tag);
然后可以使用
connect()
方法连接到标记,使用
getNdefMessage()
从标记读取当前NDEF消息,使用
writeNdefMessage(…)
方法将新的NDEF消息写入标记

或者,如果您想与标签进行低级通信,可以使用
IsoDep
技术进行连接:

IsoDep isoDep = IsoDep.get(tag);

您可以使用
connect()
方法连接到标记,使用
transceive(…)
方法与标记交换ISO 7816-4 APDU(或可能的专有命令)。

但为什么需要多次写入?