gpt4 book ai didi

android - 在 Delphi 中与 Mifare DESFire 通信

转载 作者:行者123 更新时间:2023-11-30 02:34:39 25 4
gpt4 key购买 nike

我想用Delphi编写应用程序,它可以与Android手机和DESFire卡通信。我知道,我必须向卡片发送一些字节,卡片会回答我。我阅读了有关它的文章:

https://ridrix.wordpress.com/2009/09/19/mifare-desfire-communication-example/

我不知道,如何从卡中写入和读取字节?我根据 Daniel Magin 编写了简单的应用程序:

http://www.danielmagin.de/blog/index.php/2014/09/nfc-android-application-with-delphi-xe6-and-xe7/

本程序只能从卡中读取UID。

function TNfc.ReadNFCUID: string;
var
Intent: JIntent;
jIntentName: JString;
IntentName: string;
tagId: Androidapi.JNIBridge.TJavaArray<Byte>;
tagFromIntent: JParcelable;
id: string;
i: Integer;

begin
id := '';
Intent := SharedActivity.getIntent;

if Intent <> nil then
begin
jIntentName := Intent.getAction;
IntentName := JStringToString(jIntentName);

tagId := Intent.getByteArrayExtra(TJNFCAdapter.JavaClass.EXTRA_ID);

tagFromIntent := Intent.getParcelableExtra
(TJNFCAdapter.JavaClass.EXTRA_TAG);
if (tagId <> nil) and (tagFromIntent <> nil) then
begin
for i := 0 to tagId.Length - 1 do
id := id + IntToHex(tagId.Items[i], 2);
end;
end;

Result := id;

end;

最佳答案

我找到了我的问题的解决方案:

..
var
isoNFC : JIsoDep;
tag : JTag;
aRawData : TJavaByteArray;
aResponse : TJavaByteArray;

begin
aRawData := TJavaByteArray.Create(1);

tag := TJTag.Wrap((CurrentNFCTag as ILocalObject).GetObjectID);
isoNFC := TJIsoDep.JavaClass.get(tag);
isoNFC.connect();

aRawData.Items[0] := TCmd.GetApplicationIDs;
aResponse := isoNFC.transceive(aRawData);
..

关于android - 在 Delphi 中与 Mifare DESFire 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26767872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com