Я хочу написать приложение в Delphi, которое может общаться с телефонами Android и картами DESFire. Я знаю, я должен отправить несколько байтов на карту, и карта отвечает мне. Я читал статью об этом:
https://ridrix.wordpress.com/2009/09/19/mifare-desfire-communication-example/
Я понятия не имею, как я могу писать и читать байты с карты? Я написал простое приложение по Даниэлю Магину:
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;