This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public partial class MainPage : ContentPage | |
{ | |
private readonly INfcService _nfcService; | |
public MainPage(INfcService nfcService) | |
{ | |
_nfcService = nfcService; | |
InitializeComponent(); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<VerticalStackLayout> | |
<Button Text="Read NFC Tag" Clicked="OnReadClicked" /> | |
<Button Text="Write to NFC Tag" Clicked="OnWriteClicked" /> | |
<Label x:Name="OutputLabel" Text="NFC Output will appear here" /> | |
</VerticalStackLayout> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public Task<bool> WriteTagAsync(string text) | |
{ | |
// iOS uses NFCNDEFReaderSession with write capability | |
var record = new NFCNDEFPayload( | |
NFCTypeNameFormat.NFCWellKnown, | |
"T".ToArray(), // Text type | |
"en".ToArray(), | |
text.ToArray() | |
); | |
// Write using NFCNDEFReaderSession |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task<bool> WriteTagAsync(string text) | |
{ | |
NdefMessage ndefMessage = new NdefMessage( | |
new NdefRecord[] { | |
NdefRecord.CreateTextRecord("en", text) | |
} | |
); | |
// Write to tag using Ndef.WriteNdefMessage | |
return true; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
builder.Services.AddSingleton<INfcService>(_ => | |
{ | |
#if ANDROID | |
return new NfcServiceAndroid(); | |
#elif IOS | |
return new NfcServiceiOS(); | |
#else | |
return null; | |
#endif | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using CoreNFC; | |
public class NfcServiceiOS : INfcService | |
{ | |
private NFCNdefReaderSession _nfcSession; | |
public Task<string> ReadTagAsync() | |
{ | |
// Start an NFC reader session | |
_nfcSession = new NFCNdefReaderSession(this, null, true); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Android.Nfc; | |
using Android.Nfc.Tech; | |
public class NfcServiceAndroid : INfcService | |
{ | |
public async Task<string> ReadTagAsync() | |
{ | |
// Implementation using Android.Nfc | |
// Example: Listen for NDEF messages | |
return await Task.FromResult("NFC Tag Data from Android"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public interface INfcService | |
{ | |
Task<string> ReadTagAsync(); | |
Task<bool> WriteTagAsync(string text); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<key>NFCReaderUsageDescription</key> | |
<string>This app uses NFC to read and write tags</string> | |
<key>com.apple.developer.nfc.readersession.formats</key> | |
<array> | |
<string>NDEF</string> | |
</array> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<uses-permission android:name="android.permission.NFC" /> | |
<uses-feature android:name="android.hardware.nfc" android:required="true" /> |