Jc.OpenNov.Avalonia.Android
0.2.0-preview100
See the version list below for details.
dotnet add package Jc.OpenNov.Avalonia.Android --version 0.2.0-preview100
NuGet\Install-Package Jc.OpenNov.Avalonia.Android -Version 0.2.0-preview100
<PackageReference Include="Jc.OpenNov.Avalonia.Android" Version="0.2.0-preview100" />
<PackageVersion Include="Jc.OpenNov.Avalonia.Android" Version="0.2.0-preview100" />
<PackageReference Include="Jc.OpenNov.Avalonia.Android" />
paket add Jc.OpenNov.Avalonia.Android --version 0.2.0-preview100
#r "nuget: Jc.OpenNov.Avalonia.Android, 0.2.0-preview100"
#:package Jc.OpenNov.Avalonia.Android@0.2.0-preview100
#addin nuget:?package=Jc.OpenNov.Avalonia.Android&version=0.2.0-preview100&prerelease
#tool nuget:?package=Jc.OpenNov.Avalonia.Android&version=0.2.0-preview100&prerelease
Jc.OpenNov
Library for reading data from NFC Novo Nordisk insulin pens in .NET.
C# implementation derived from lcacheux's Kotlin nov-open-reader project - big thanks!
Table of Contents
Introduction
Jc.OpenNov is a library designed to facilitate the reading of data from NFC Novo Nordisk insulin pens.
Components
- Jc.OpenNov: Core library containing data structure and protocol implementation.
- Jc.OpenNov.Nfc.Android: Android implementation of NFC communication using Jc.OpenNov.
- Jc.OpenNov.Avalonia: Avalonia implementation of NFC communication using Jc.OpenNov.
- Jc.OpenNov.Avalonia.Android: Android implementation of NFC communication using Jc.OpenNov.Avalonia.
Sample Screenshots
Android | iOS |
---|---|
<img alt="Android" src="img/android.JPG" width="250" /> |
Usage
Barebones (MAUI/etc.)
To use Jc.OpenNov, you need to install the NuGet package:
dotnet add package Jc.OpenNov
Followed by adding the Android/iOS Jc.OpenNov.Nfc.xxx
package to your project:
dotnet add package Jc.OpenNov.Nfc.Android
Android
Install the following NuGet packages to their respective projects:
dotnet add package Jc.OpenNov.Avalonia
dotnet add package Jc.OpenNov.Avalonia.Android
Add the following to your AndroidManifest.xml:
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" android:required="true" />
In your MainActivity
, add to your AppBuilder
like so:
protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
{
return base.CustomizeAppBuilder(builder)
// ...
.UseOpenNov(this);
}
To start listening for NFC tags, call:
OpenNov.Current.MonitorNfc(/* you may pass in an optional stop condition */);
Likewise, to stop listening for NFC tags, call:
OpenNov.Current.StopNfc();
To know when an NFC tag is detected and data is obtained, subscribe to the event handlers:
public MainViewModel()
{
StarNfcCommand = ReactiveCommand.Create(StartNfc);
StopNfcCommand = ReactiveCommand.Create(StopNfc);
Avalonia.OpenNov.Current.OnDataRead += OnDataRead;
Avalonia.OpenNov.Current.OnTagDetected += OnTagDetected;
Avalonia.OpenNov.Current.OnError += OnError;
}
~MainViewModel()
{
Avalonia.OpenNov.Current.OnDataRead -= OnDataRead;
Avalonia.OpenNov.Current.OnTagDetected -= OnTagDetected;
Avalonia.OpenNov.Current.OnError -= OnError;
}
private void OnDataRead(object? sender, Data.PenResult e)
{
if (e is Data.PenResult.Success success)
{
Serial = success.Data.Serial;
}
}
private void OnTagDetected(object? sender, ITag? e)
{
var bytes = e?.GetId();
if (bytes is null)
{
TagId = "Tag not found";
return;
}
TagId = Convert.ToHexString(bytes);
}
private void OnError(object? sender, Exception e)
{
Error = e.Message;
}
iOS
// Coming soon
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0-android35.0 is compatible. net10.0-android was computed. |
-
net9.0-android35.0
- Avalonia.Android (>= 11.3.2)
- Jc.OpenNov.Avalonia (>= 0.2.0-preview100)
- Jc.OpenNov.Nfc.Android (>= 0.2.0-preview100)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 484 | 7/22/2025 |
0.2.0 | 484 | 7/22/2025 |
0.2.0-preview100 | 270 | 7/20/2025 |