Отключить SIM-PIN через MbnApi в DotNet - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь отключить ПИН-код некоторых 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();
    }
...