2012-04-06 97 views
0

下面的代碼將工作的Click事件處理程序,但我不能讓它自動發送SMStextmesage後臺服務異步

async void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     SmsDevice smsDevice2 = (SmsDevice)await SmsDevice.GetDefaultAsync(); 

     // Create a text message - Set destination number and message text 
     SmsTextMessage msg = new SmsTextMessage(); 
     msg.To = "12345678"; 
     msg.Body = "xxxx"; 

     // Send the message asynchronously 
     await smsDevice2.SendMessageAsync(msg); 


    } 

這不會工作(後臺服務)

async void DisplayToastAsync(IBackgroundTaskInstance taskInstance, ManualResetEvent manualEventWaiter) 
    { 
     SmsDevice smsDevice2 = (SmsDevice)await SmsDevice.GetDefaultAsync(); 
     // Create a text message - Set destination number and message text 
     SmsTextMessage msg = new SmsTextMessage(); 
     msg.To = "12345678"; 
     msg.Body = "xxx"; 

     // Send the message asynchronously 
     await smsDevice2.SendMessageAsync(msg); 

}

任何人知道爲什麼?我該如何解決它?

+0

你是什麼意思,它不會工作?它有什麼作用?它拋出和異常,還是什麼? – svick 2012-04-06 18:16:28

+0

沒有thrown.i知道這聽起來很奇怪,但DisplaytoastAsync中的其他代碼得到執行 – CodeGuru 2012-04-07 01:55:56

回答

1

我在做實驗,發現你需要填寫「From」字段(SmsDevice.AccountPhoneNumber的副本)。儘管如此,我仍然得到了所謂的「通用錯誤」,但至少它不是「參數錯誤」。

如果你有興趣,我的通用錯誤是0x80548212。

另外 - 我猜你已經這樣做了(或者我認爲你會得到一個空的短信設備) - 但你需要使應用程序能夠在清單中發短信。

更多信息 - 通用錯誤是我的SIM卡僅針對數據啓用。一旦換出包含SMS的SIM卡,代碼就可以正常工作。