2017-07-05 63 views

回答

0

您可以在Windows Phone应用程序中获得SIM MSISDN & IMSI号码。请注意,您应按如下方式手动编辑应用程序Package.appxmanifest:

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" 
    xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
    xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
    xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" 
    IgnorableNamespaces="uap mp rescap"> 

...... 

<Capabilities> 
    <rescap:Capability Name="cellularDeviceIdentity" /> 
</Capabilities> 

的cellularDeviceIdentity能力允许应用访问蜂窝识别数据。 任何人都可以请求访问这些capabilities以进行商店提交。

您可以使用MobileBroadbandModem类获取全部CurrentDeviceInformation,以下是核心代码。

using Windows.Networking.NetworkOperators; 

...... 

public IReadOnlyList<SimCard> GetSimCards() 
{ 
    var results = new List<SimCard>(); 

    var modem = MobileBroadbandModem.GetDefault(); 
    if (modem == null) 
    { 
     return results.AsReadOnly(); 
    } 

    var account = modem.CurrentAccount; 
    if (account == null) 
    { 
     return results.AsReadOnly(); 
    } 
    var simCard = new SimCard(); 
    simCard.ICCID = account.CurrentDeviceInformation.SimIccId; 
    simCard.IMSI = account.CurrentDeviceInformation.SubscriberId; 
    simCard.MSISDN = modem.DeviceInformation.TelephoneNumbers; 

    simCard.MCC = ExtractMCC(simCard.IMSI); 
    simCard.MNC = ExtractMNC(simCard.IMSI); 
    simCard.MSID = ExtractMSID(simCard.IMSI); 

    results.Add(simCard); 

    return results.AsReadOnly(); 
} 

我已经将code sample上传到git hub。请检查!

+0

如何获取windows.networking.networkoperators的参考? –

+0

你可以直接使用['Windows.Networking.NetworkOperators'](https://docs.microsoft.com/en-us/uwp/api/windows.networking.networkoperators)命名空间! –

+0

我没有得到代码中可访问的MobileBroadbandModem类。我已将 添加到Package.appxmanifest中。但我正在使用VS2013并使Windows Phone 8.1应用程序 –

相关问题