如何从手机向MIFARE读卡器发送NDEF消息?
在读者方面,我使用https://github.com/AlterCodex/nxppy中的这段代码:
import nxppy
import ndef
# Instantiate reader
mifare = nxppy.Mifare()
# Select tag
uid = mifare.select()
# Read NDEF data
ndef_data = mifare.read_ndef()
# Parse NDEF data
ndef_records = list(ndef.message_decoder(ndef_data))
当我尝试使用此代码发送NDEF消息时,出现内存错误:
public NdefMessage CreateNdefMessage(NfcEvent e)
{
NdefRecord uriRecord = NdefRecord.CreateUri("http://myURL");
NdefMessage message = new NdefMessage(new[] { uriRecord });
return message;
}
对于此代码,我遇到错误:ndef_data = milfare.read_ndef()MemoryError。
如何编辑此解决方案以使其起作用?我只想从带有nfc-explorer板的Android应用程序中读取一条简单的NDEF消息,但我完全困惑如何执行此操作。
答案 0 :(得分:1)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = {'Partyname': ['Independents', 'INC','Independents','Independents','Independents'], 'Year': [1977, 1977,1980,1980,1980], "totPoll":[25168,35400,109,125,405]}
df = pd.DataFrame(data)
grpByParty = df.groupby(['Partyname'])
sumVotes = grpByParty['totPoll'].agg(np.sum)
y_values = sumVotes.keys().tolist()
y_pos = np.arange(len(y_values))
votes = sumVotes.tolist()
plt.bar(y_pos, votes, align='center', alpha=0.5)
plt.xticks(y_pos, y_values)
plt.ylabel('votes')
plt.title('party wise votes ')
plt.show()
似乎期望包含NDEF消息的MIFARE Ultralight(或其他2型标签)。您根本无法在Android上模拟MIFARE(Ultralight)标签(请参见Emulate Mifare card with Android 4.4)。
在使用mifare.read_ndef()
(或实际上为public NdefMessage CreateNdefMessage(NfcEvent e) {}
)时,您在Android上所做的工作是定义了NDEF消息,该消息应以对等模式(使用SNEP + LLCP)传输+ NFC-DEP)。这与您读取(或仿真)标签时的协议栈完全不同。因此,当您想在Android上使用点对点模式时,您将需要使用在另一端也支持点对点模式(和SNEP)的库。