NFC teszt és egyebek javítása, fejlesztése
This commit is contained in:
@@ -1,25 +1,35 @@
|
||||
using Plugin.NFC;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Text;
|
||||
using System.Windows.Input;
|
||||
using System.Linq;
|
||||
|
||||
namespace WorkFlowCheck.MAUI.Pages.NFC;
|
||||
|
||||
public partial class NFCTestPage : ContentPage
|
||||
{
|
||||
public NFCTestPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public NFCTestPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public ObservableCollection<NFCData> NFCDataList { get; set; }
|
||||
public ICommand RefreshCommand { get; set; }
|
||||
|
||||
public const string ALERT_TITLE = "NFC";
|
||||
bool _eventsAlreadySubscribed = false;
|
||||
public bool IsRefreshing { get; set; }
|
||||
|
||||
protected override async void OnAppearing()
|
||||
{
|
||||
base.OnAppearing();
|
||||
|
||||
CrossNFC.Legacy = false;
|
||||
if (CrossNFC.IsSupported)
|
||||
{
|
||||
if (!CrossNFC.Current.IsAvailable)
|
||||
await ShowAlert("NFC is not available");
|
||||
|
||||
|
||||
if (!CrossNFC.Current.IsEnabled)
|
||||
await ShowAlert("NFC is disabled");
|
||||
|
||||
@@ -29,6 +39,8 @@ public partial class NFCTestPage : ContentPage
|
||||
{
|
||||
await ShowAlert("NFC is not available");
|
||||
}
|
||||
RefreshCommand = new Command(async () => await LoadNFCDataList());
|
||||
BindingContext = this;
|
||||
}
|
||||
Task ShowAlert(string message, string title = null) => DisplayAlert(string.IsNullOrWhiteSpace(title) ? ALERT_TITLE : title, message, "OK");
|
||||
async Task AutoStartAsync()
|
||||
@@ -39,7 +51,7 @@ public partial class NFCTestPage : ContentPage
|
||||
}
|
||||
async Task StartListeningIfNotiOS()
|
||||
{
|
||||
|
||||
|
||||
await BeginListening();
|
||||
}
|
||||
async Task BeginListening()
|
||||
@@ -64,23 +76,23 @@ public partial class NFCTestPage : ContentPage
|
||||
|
||||
_eventsAlreadySubscribed = true;
|
||||
|
||||
CrossNFC.Current.OnMessageReceived += Current_OnMessageReceived;
|
||||
CrossNFC.Current.OnMessageReceived += Current_OnMessageReceived_NFCData;
|
||||
//CrossNFC.Current.OnMessagePublished += Current_OnMessagePublished;
|
||||
//CrossNFC.Current.OnTagDiscovered += Current_OnTagDiscovered;
|
||||
//CrossNFC.Current.OnNfcStatusChanged += Current_OnNfcStatusChanged;
|
||||
//CrossNFC.Current.OnTagListeningStatusChanged += Current_OnTagListeningStatusChanged;
|
||||
|
||||
|
||||
|
||||
}
|
||||
void UnsubscribeEvents()
|
||||
{
|
||||
CrossNFC.Current.OnMessageReceived -= Current_OnMessageReceived;
|
||||
CrossNFC.Current.OnMessageReceived -= Current_OnMessageReceived_NFCData;
|
||||
//CrossNFC.Current.OnMessagePublished -= Current_OnMessagePublished;
|
||||
//CrossNFC.Current.OnTagDiscovered -= Current_OnTagDiscovered;
|
||||
//CrossNFC.Current.OnNfcStatusChanged -= Current_OnNfcStatusChanged;
|
||||
//CrossNFC.Current.OnTagListeningStatusChanged -= Current_OnTagListeningStatusChanged;
|
||||
|
||||
|
||||
|
||||
|
||||
_eventsAlreadySubscribed = false;
|
||||
}
|
||||
@@ -111,6 +123,42 @@ public partial class NFCTestPage : ContentPage
|
||||
await ShowAlert(GetMessage(first), title);
|
||||
}
|
||||
}
|
||||
async void Current_OnMessageReceived_NFCData(ITagInfo tagInfo)
|
||||
{
|
||||
|
||||
if (tagInfo == null)
|
||||
{
|
||||
await ShowAlert("No tag found");
|
||||
return;
|
||||
}
|
||||
|
||||
// Customized serial number
|
||||
var identifier = tagInfo.Identifier;
|
||||
var serialNumber = NFCUtils.ByteArrayToHexString(identifier, ":");
|
||||
|
||||
if (NFCDataList == null)
|
||||
{
|
||||
NFCDataList = new ObservableCollection<NFCData>();
|
||||
}
|
||||
|
||||
|
||||
NFCDataList.Add(new NFCData()
|
||||
{
|
||||
SerialNumber = serialNumber,
|
||||
DateReceived = $"{DateTime.Now.Date.ToShortDateString()} {DateTime.Now.ToLongTimeString()}"
|
||||
});
|
||||
|
||||
NFCDataListCollection.ItemsSource = NFCDataList.OrderByDescending(o => o.DateReceived);
|
||||
await LoadNFCDataList();
|
||||
}
|
||||
|
||||
private async Task LoadNFCDataList()
|
||||
{
|
||||
IsRefreshing = true;
|
||||
IsRefreshing = false;
|
||||
OnPropertyChanged(nameof(IsRefreshing));
|
||||
OnPropertyChanged(nameof(NFCDataList));
|
||||
}
|
||||
string GetMessage(NFCNdefRecord record)
|
||||
{
|
||||
var message = $"Message: {record.Message}";
|
||||
@@ -127,7 +175,8 @@ public partial class NFCTestPage : ContentPage
|
||||
|
||||
return message;
|
||||
}
|
||||
protected override bool OnBackButtonPressed() {
|
||||
protected override bool OnBackButtonPressed()
|
||||
{
|
||||
Shell.Current.GoToAsync("//MainPage");
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user