Auflisten von SMS-Geräten
Die MOBILE BREITBAND-SMS-Plattform bietet die Möglichkeit, das erste SMS-fähige mobile Breitbandgerät zu erhalten oder eine Liste aller SMS-fähigen mobilen Breitbandgeräte abzurufen. Der folgende Beispielcode zeigt das Instanziieren eines SMS-Objekts mit dem STANDARD-SMS-Gerät und einem bestimmten Gerät.
Hinweis In Apps, die C# oder C++ in Windows 8, Windows 8.1 oder Windows 10 verwenden, sollte die erste Verwendung des SmsDevice-Objekts zum Aufrufen von GetDefaultAsync oder FromIdAsync im STA-Thread erfolgen. Aufrufe aus einem MTA-Thread können zu einem nicht definierten Verhalten führen.
JavaScript-Codebeispiel zur Verwendung des STANDARD-SMS-Geräts
var smsDevice = new Windows.Devices.Sms.SmsDevice.getDefault();
try
{
var smsDeviceOperation = Windows.Devices.Sms.SmsDevice.getDefaultAsync();
smsDeviceOperation.done(smsDeviceReceived, errorCallback);
}
catch (err)
{
// handle error
}
JavaScript-Codebeispiel zum Auflisten aller SMS-Geräte
Windows.Devices.Enumeration.DeviceInformation.findAllAsync(Windows.Devices.Sms.SmsDevice.getDeviceSelector()).then(function (smsdevices)
{
if (smsdevices.length > 0)
{
// for simplicity we choose the first device
var smsDeviceId = smsdevices[0].Id;
var smsDeviceOperation = Windows.Devices.Sms.SmsDevice.fromIdAsync(smsNotificationDetails.deviceId);
smsDeviceOperation.done(function (smsDeviceResult)
{
smsDevice = smsDeviceResult;
}, errorCallback);
}
}
Erkennen von Sms-Gerätezugriffsfehlern
Sie können erkennen, ob beim Aufzählen des SMS-Geräts ein Fehler aufgetreten ist, weil die App keinen Zugriff auf SMS hat. Dies kann passieren, wenn der Benutzer den Zugriff auf die App explizit verweigert oder die Gerätemetadaten keinen Zugriff auf die App gewährt haben.
JavaScript-Codebeispiel zum Erkennen von Sms-Gerätezugriffsfehlern
Windows.Devices.Enumeration.DeviceInformation.findAllAsync(Windows.Devices.Sms.SmsDevice.getDeviceSelector()).then(function (smsdevices)
{
if (smsdevices.length > 0)
{
// for simplicity we choose the first device
var smsDeviceId = smsdevices[0].Id.slice(startIndex,endIndex + 1);
var smsDeviceOperation = Windows.Devices.Sms.SmsDevice.fromIdAsync(smsNotificationDetails.deviceId);
smsDeviceOperation.done(function (smsDeviceResult)
{
smsDevice = smsDeviceResult;
}, errorCallback);
// detect if SMS access is denied due to user not granting app consent to use SMS or if metadata is missing or invalid.
}
function errorCallback(error)
{
WinJS.log(error.name + " : " + error.description, "sample", "error");
// If the error was caused due to access being denied to this app
// then the HResult is set to E_ACCESSDENIED (0x80007005)
// var hResult = hex(error.number);
}
function hex(nmb)
{
if (nmb >= 0)
{
return nmb.toString(16);
}
else
{
return (nmb + 0x100000000).toString(16);
}
}