请帮我发送ussd请求。
IReadOnlyList<string> networkAccIds = MobileBroadbandAccount.AvailableNetworkAccountIds;
if (networkAccIds.Count == 0)
{
return;
}
string networkAccountId = networkAccIds[0];
UssdSession session = UssdSession.CreateFromNetworkAccountId(networkAccIds[0]);
我的手机中安装了2张SIM卡。但是networkAccIds.Count
总是为零。我的错是什么?
感谢 Jerry Li 。我有网络标识符。我有一个新问题。当我这样做时:
UssdReply reply = await session.SendMessageAndGetReplyAsync(new UssdMessage("*100#"));
我得到例外:
发生意外异常:System.Runtime.InteropServices.COMException(0x80070032):不支持请求。
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at uwp_1.MainPage.<GetBalance>d__1.MoveNext()
为什么我会例外?
答案 0 :(得分:0)
我的手机中安装了2张SIM卡。但networkAccIds.Count始终为零。我的错是什么?
您正在访问移动宽带运营商使用的特权API (UssdSession和MobileBroadbandAccount)。它需要在包清单中声明special-use capability:
<Capabilities>
<r:Capability Name="cellularDeviceIdentity"/>
<r:Capability Name="cellularDeviceControl"/>
<r:Capability Name="cellularMessaging"/>
</Capabilities>
请确保您已在包清单中声明了相应的special-use capabilities。显示如何使用移动宽带网络API的Mobile broadband sample供您参考。
此外:
您的应用程序可以运行,您可以在手机上进行测试,但它不会通过WACK(Windows应用认证套件),因为它使用的是special-use capability。此类应用程序可用于公司应用程序(不需要发布到Windows应用商店),MS内部或OEM /合作伙伴。