private void LaunchCallback(byte[] data) { byte[] temp = new byte[data.Length - data[1] - 2]; Array.Copy(data, 2 + data[1], temp, 0, temp.Length); NdefParser parser = new NdefParser(temp); RecordData[] payload = parser.GetPayLoad().ToArray(); if (payload.Length > 0) { if (payload[0].NdefType.Equals("U")) { Uri uri = new Uri(payload[0].Content); if (uri.Scheme == 0) { return; } Process.Start(payload[0].Content); } } Task.Run(() => { Thread.Sleep(500); DetectandLaunch(); }); }
private void AddNdefContent(byte[] data) { byte[] temp = new byte[data.Length - data[1] - 2]; Array.Copy(data, 2 + data[1], temp, 0, temp.Length); NdefParser parser = new NdefParser(temp); Action update = () => { foreach (RecordData payload in parser.GetPayLoad()) { ndefData.Text += payload.Content + "\r\n"; } }; Dispatcher.BeginInvoke(update); ShowSuccessStatus(); }
private async void ProximityMessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { var parser = new NdefParser(message); var ndefRecords = new List <NdefRecord>(); var err = ""; try { ndefRecords = parser.Parse(); } catch (NoSonyNdefRecordException) { err = SystemUtil.GetStringResource("ErrorMessage_CantFindSonyRecord"); } catch (NoNdefRecordException) { err = SystemUtil.GetStringResource("ErrorMessage_ParseNFC"); } catch (NdefParseException) { err = SystemUtil.GetStringResource("ErrorMessage_ParseNFC"); } catch (Exception) { err = SystemUtil.GetStringResource("ErrorMessage_fatal"); } if (err != "") { DebugUtil.Log(() => "Failed to read NFC: " + err); await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { AppShell.Current.Toast.PushToast(new Controls.ToastContent { Text = err }); }); return; } foreach (NdefRecord r in ndefRecords) { if (r.SSID.Length > 0 && r.Password.Length > 0) { await OnConnectionInfoFound(r.SSID, r.Password); break; } } }
private void NFCMessageReceivedHandler(ProximityDevice sender, ProximityMessage message) { var parser = new NdefParser(message); List<NdefRecord> ndefRecords = new List<NdefRecord>(); ndefRecords = parser.Parse(); InitializePivot(); if (ndefRecords.Count == 0) { Dispatcher.BeginInvoke(() => { // there's no NDEF record. NFCMessage.Text = AppResources.NFC_Message_error; }); } else { Dispatcher.BeginInvoke(() => { // NDEF records found. NFCMessage.Text = AppResources.NFC_Message_detected; ApplicationBar = CreateAppBar(); }); } int i = 0; foreach (NdefRecord r in ndefRecords) { i++; Dispatcher.BeginInvoke(() => { var newPivotItem = new PivotItem() { Margin = new Thickness(12, 0, 12, 0), }; var content = new NdefPivotItem(MyPivot.Items.Count, r, ndefRecords.Count); newPivotItem.Content = content; stringBuilder.Append(content.getAppendString()); MyPivot.Items.Add(newPivotItem); }); } Dispatcher.BeginInvoke(() => { if (MyPivot.Items.Count > 1) { MyPivot.SelectedIndex = 1; } }); }