SimInformation is a cross-platform library that provides a way to access the following information from your SIM card:

Usage

The API is rather straight forward

var simInformation = new SimInformation();
IReadOnlyList<SimCard> simCards = simInformation.GetAllCards();

simCards[x].ICCID
simCards[x].MCC
simCards[x].IMSI
simCards[x].MSID
simCards[x].MNC
simCards[x].MSIDN

Instead of newing up the implementation each time you need it, register it into your IoC/DI container:

# example registration using splat
Locator.CurrentMutable.RegisterConstant(() => new SimInformation(), typeof(ISimInformation));

Then use it in your viewmodel or services as needed:

# example integration with reactiveui
public class MyCoolViewModel : ReactiveObject
{
    private readonly ISimInformation _simInformation;
    
    public MyCoolViewModel(ISimInformation simInformation = null)
    {
        _simInformation = simInformation ?? Locator.Current.GetService<ISimInformation>();
    }
}