SmsDevice 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public ref class SmsDevice sealed : ISmsDevice
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.Sms.LegacySmsApiContract, 65536)]
/// [Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, Windows.Devices.Sms.LegacySmsApiContract)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SmsDevice final : ISmsDevice
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.Sms.LegacySmsApiContract, 65536)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Devices.Sms.LegacySmsApiContract")]
class SmsDevice final : ISmsDevice
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.Sms.LegacySmsApiContract), 65536)]
[Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, typeof(Windows.Devices.Sms.LegacySmsApiContract))]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SmsDevice : ISmsDevice
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.Sms.LegacySmsApiContract), 65536)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Devices.Sms.LegacySmsApiContract")]
public sealed class SmsDevice : ISmsDevice
Public NotInheritable Class SmsDevice
Implements ISmsDevice
- 继承
- 属性
- 实现
Windows 要求
设备系列 |
Windows Desktop Extension SDK (在 10.0.10240.0 中引入)
|
API contract |
Windows.Devices.Sms.LegacySmsApiContract (在 v1.0 中引入)
|
应用功能 |
cellularMessaging
sms
|
注解
如果用户撤销访问权限,则使用 Windows.Devices.Sms API 发送或接收短信的应用会失败 并E_ACCESS_DENIED 。
如果已向应用授予了对短信设备的访问权限:
- 首次运行应用时,调用 GetDefaultAsync 或 FromIdAsync 会触发同意提示。
- 如果用户未在同意提示中授予权限或撤消权限, GetDefaultAsync 和 FromIdAsync 异步方法的错误处理程序会收到 E_ACCESS_DENIED 。
- 如果用户在撤消短信后重新启用对短信的访问,请再次调用 GetDefaultAsync 或 FromIdAsync 来访问短信。 例如, E_ACCESS_DENIED 错误的错误处理程序可能会显示 UI,以指示用户使用设置超级按钮重新启用短信,然后点击按钮以重试访问短信。 按钮背后的代码应在进行任何其他调用之前调用 GetDefaultAsync 或 FromIdAsync 。
- 如果应用 (Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived) 注册短信后台事件,则应用必须首先再次调用 GetDefaultAsync 或 FromIdAsync 来访问短信,以确保应用具有访问权限。 从后台任务调用 GetDefaultAsync 或 FromIdAsync 不会触发同意提示。 如果是首次运行,或者用户未授予权限,或者如果权限被撤销,则会收到 E_ACCESS_DENIED。
使用 C# 或 C++ 编写的应用程序首次使用 SmsDevice 对象调用 FromIdAsync 或 GetDefaultAsync 应在单线程单元 (STA) 线程上。 从多线程单元 (MTA) 线程调用可能会导致未定义的行为。
属性
AccountPhoneNumber |
返回与 SMS 设备关联的电话号码。 电话号码可用于将传入邮件与帐户关联,并可能将外部存储机制(如帐户收件箱)关联。 |
CellularClass |
返回 SMS 设备的手机网络类。 类可用于确定哪些编码适用或哪些设备限制有效。 |
DeviceStatus |
返回短信设备的状态,指示设备是否已准备就绪。 它还指示设备未就绪时存在哪种类型的问题。 |
MessageStore |
访问设备上的消息存储。 存储会保留消息,直到客户端可以检索它们。 例如,在某些设备上,存储可能与短信的 SIM 存储相对应。 |
方法
CalculateLength(SmsTextMessage) |
估计指定文本消息的传输消息长度。 对于想要指示网络上发送多少条消息以携带完整消息文本的客户端,此估算值可能很有用。 |
FromIdAsync(String) |
为接收短信的设备创建 SmsDevice 实例。 |
FromNetworkAccountIdAsync(String) |
为指定的移动宽带网络帐户 ID 创建 SmsDevice 实例。 |
GetDefaultAsync() |
创建与默认 SMS 设备关联的 SmsDevice 对象的实例。 由于设备可能正忙,因此操作以异步方式执行。 异步操作对象立即返回。 |
GetDeviceSelector() |
检索可用于枚举 SMS 设备的类选择字符串。 |
SendMessageAsync(ISmsMessage) |
使用 SMS 设备异步发送消息。 方法是异步的,因为发送操作可能不会瞬间发生。 消息操作对象将立即返回。 |
事件
SmsDeviceStatusChanged |
设置在 SMS 设备的状态更改时调用的事件处理程序。 |
SmsMessageReceived |
设置在设备收到新文本消息时要调用的事件处理程序。 |