Я пытаюсь отключить ПИН-код некоторых SIM-карт на моем предприятии, и мне нужно сделать это удаленно.Поскольку карт слишком много, я хочу их автоматизировать.Короче говоря:
Я хочу отключить SIM-контакты через dotnet.Я уже использую MbnApi для чтения SIM-ICC и т. Д., Но не могу получить PIN-номер.Я знаю любой PIN-код в отношении SIM-ICC, но я не знаю, как получить экземпляр IMbnPin.
Как создать экземпляр IMbnPin?
Заранее спасибо,
Александр - Правка:
Ниже приведены мои знания API.Моя проблема сохраняется, я не могу найти метод, который дает мне экземпляр IMbnPin.Я посмотрел на ссылку API: https://docs.microsoft.com/de-de/windows/desktop/api/mbnapi/nn-mbnapi-imbnpinmanager (это для неуправляемого c ++) и растянул добрые старые поисковые системы.
Метод IMbnInterface :: QueryInterface отсутствует в управляемом коде / C #.
public static SimCard[] ReadDevices() {
List<SimCard> sc = new List<SimCard>();
SimCard temp = new SimCard();
MbnInterfaceManager mbnInfMgr = new MbnInterfaceManager();
IMbnInterfaceManager infMgr = (IMbnInterfaceManager)mbnInfMgr;
IMbnInterface[] interfaces = (IMbnInterface[])infMgr.GetInterfaces();
foreach (IMbnInterface mobileInterface in interfaces)
{
temp = new SimCard();
try {
MBN_INTERFACE_CAPS caps = mobileInterface.GetInterfaceCapability();
temp.Imei = caps.deviceID;
IMbnSubscriberInformation iSubInf = mobileInterface.GetSubscriberInformation();
temp.Icc = iSubInf.SimIccID;
temp.Imsi = iSubInf.SubscriberID;
MBN_PROVIDER provider = mobileInterface.GetHomeProvider();
temp.Carrier = provider.providerName;
MBN_READY_STATE readyState = mobileInterface.GetReadyState();
IMbnRadio radio = (IMbnRadio)mobileInterface;
}
catch(Exception ex) { //Ignore Errors
StreamWriter wr = new StreamWriter(Path.GetTempPath() + "\\regat.txt");
wr.Write(ex.ToString());
wr.Flush();
wr.Close();
}
finally { // Get minimal Information out of PIN-Locked SIM-Card
if (temp != null &&
!string.IsNullOrEmpty(temp.Imei) &&
!string.IsNullOrEmpty(temp.Icc)) {
sc.Add(temp);
}
}
}
return sc.ToArray();
}