在Windows Phone应用程序中获取SIM MSISDN和IMSI号码
问题描述:
是否可以在Windows Phone应用程序开发中获得SIM MSISDN & IMSI号码?在Windows Phone应用程序中获取SIM MSISDN和IMSI号码
我已经经历了一些Q/A,但他们都被问很久以前。
答
您可以在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。请检查!
如何获取windows.networking.networkoperators的参考? –
你可以直接使用['Windows.Networking.NetworkOperators'](https://docs.microsoft.com/en-us/uwp/api/windows.networking.networkoperators)命名空间! –
我没有得到代码中可访问的MobileBroadbandModem类。我已将 Capabilities>添加到Package.appxmanifest中。但我正在使用VS2013并使Windows Phone 8.1应用程序 –