Windows Phone开发(24):启动器与选择器之发送短信

移动开发
这些操作都在用户的操控之中,发送短信一定会显示可视化页面的,而且不会偷偷地在后台发送,因为Windows phone是以用户体验和安全为原则的,后台发送是不允许的,而且发送过程是由用户控制的,你可以选择取消或退出。

本节我们通过一个简单的发送短信示例来演示一下如果配合使用PhoneNumberChooserTask和SmsComposeTask类。

PhoneNumberChooserTask是选择器,它用于从你的电话簿里选择你要发送短信的电话号码;

SmsComposeTask就是用来启动发送短信组件并显示发送窗口。

注意,这些操作都在用户的操控之中,发送短信一定会显示可视化页面的,而且不会偷偷地在后台发送,因为Windows phone是以用户体验和安全为原则的,后台发送是不允许的,而且发送过程是由用户控制的,你可以选择取消或退出。

SmsComposeTask类的To属性就是目标电话号码,Body就是你要发送的短信的正文。

同样,你会很轻松地就完成这个任务,不信,看看代码吧。

  1. <phone:PhoneApplicationPage  
  2.     x:Class="SMSSample.MainPage" 
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  5.     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
  6.     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
  7.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  8.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  9.     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" 
  10.     FontFamily="{StaticResource PhoneFontFamilyNormal}" 
  11.     FontSize="{StaticResource PhoneFontSizeNormal}" 
  12.     Foreground="{StaticResource PhoneForegroundBrush}" 
  13.     SupportedOrientations="Portrait" Orientation="Portrait" 
  14.     shell:SystemTray.IsVisible="True"
  15.     <!--LayoutRoot 是包含所有页面内容的根网格--> 
  16.     <Grid x:Name="LayoutRoot" Background="Transparent"
  17.         <Grid.RowDefinitions> 
  18.             <RowDefinition Height="Auto"/> 
  19.             <RowDefinition Height="*"/> 
  20.         </Grid.RowDefinitions> 
  21.         <!--TitlePanel 包含应用程序的名称和页标题--> 
  22.         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"
  23.             <TextBlock x:Name="ApplicationTitle" Text="我的应用程序" Style="{StaticResource PhoneTextNormalStyle}"/> 
  24.             <TextBlock x:Name="PageTitle" Text="发送短信" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> 
  25.         </StackPanel> 
  26.         <!--ContentPanel - 在此处放置其他内容--> 
  27.         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"
  28.             <TextBlock Height="40" HorizontalAlignment="Left" Margin="33,69,0,0" Name="textBlock1" Text="接收者:" VerticalAlignment="Top" FontSize="30" Width="144" /> 
  29.             <TextBox Height="72" HorizontalAlignment="Left" Margin="12,116,0,0" Name="txtPhoneNumber" Text="" VerticalAlignment="Top" Width="418" > 
  30.                 <TextBox.InputScope> 
  31.                     <InputScope> 
  32.                         <InputScopeName NameValue="Number"/> 
  33.                     </InputScope> 
  34.                 </TextBox.InputScope> 
  35.             </TextBox> 
  36.             <TextBlock FontSize="30" Height="40" HorizontalAlignment="Left" Margin="33,235,0,0" Name="textBlock2" Text="短信内容:" VerticalAlignment="Top" Width="213" /> 
  37.             <TextBox Height="233" HorizontalAlignment="Left" Margin="12,283,0,0" Name="txtMessage" Text="" VerticalAlignment="Top" Width="418" TextWrapping="Wrap" /> 
  38.             <Button Content="发送" Height="79" HorizontalAlignment="Left" Margin="48,522,0,0" Name="btnSend" VerticalAlignment="Top" Width="357" Click="btnSend_Click" /> 
  39.             <Button Content="选择电话号码" Height="72" HorizontalAlignment="Left" Margin="185,45,0,0" Name="btnChoose" VerticalAlignment="Top" Width="220" Click="btnChoose_Click" /> 
  40.         </Grid> 
  41.     </Grid> 
  42. </phone:PhoneApplicationPage>
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Net; 
  5. using System.Windows; 
  6. using System.Windows.Controls; 
  7. using System.Windows.Documents; 
  8. using System.Windows.Input; 
  9. using System.Windows.Media; 
  10. using System.Windows.Media.Animation; 
  11. using System.Windows.Shapes; 
  12. using Microsoft.Phone.Controls; 
  13. using Microsoft.Phone.Tasks; 
  14. namespace SMSSample 
  15.     public partial class MainPage : PhoneApplicationPage 
  16.     { 
  17.         PhoneNumberChooserTask myChooser = new PhoneNumberChooserTask(); 
  18.         SmsComposeTask SMS = null
  19.         // 构造函数 
  20.         public MainPage() 
  21.         { 
  22.             InitializeComponent(); 
  23.             // 实例化 
  24.             SMS = new SmsComposeTask(); 
  25.             // 注册回调事件 
  26.             myChooser.Completed += (sender, e) => { 
  27.                 if (e.TaskResult== TaskResult.OK) 
  28.                 { 
  29.                     Dispatcher.BeginInvoke(() => { this.txtPhoneNumber.Text = e.PhoneNumber; }); 
  30.                 } 
  31.             }; 
  32.         } 
  33.         // 选择联系人 
  34.         private void btnChoose_Click(object sender, RoutedEventArgs e) 
  35.         { 
  36.             if (myChooser == null
  37.             { 
  38.                 myChooser = new PhoneNumberChooserTask(); 
  39.             } 
  40.             myChooser.Show(); 
  41.         } 
  42.         // 发送 
  43.         private void btnSend_Click(object sender, RoutedEventArgs e) 
  44.         { 
  45.             if (txtPhoneNumber.Text == "" || txtMessage.Text == ""
  46.             { 
  47.                 MessageBox.Show("接收号码和短信内容不能为空。"); 
  48.                 return
  49.             } 
  50.             if (SMS == null
  51.             { 
  52.                 SMS = new SmsComposeTask(); 
  53.             } 
  54.             // 赋值 
  55.             SMS.To = txtPhoneNumber.Text; 
  56.             SMS.Body = txtMessage.Text; 
  57.             try 
  58.             { 
  59.                 SMS.Show(); 
  60.             } 
  61.             catch (Exception ex) 
  62.             { 
  63.                 MessageBox.Show(ex.Message); 
  64.             } 
  65.         } 
  66.     } 
  67. }

责任编辑:闫佳明 来源: oschina
相关推荐

2013-04-19 15:22:31

Windows Pho启动器与选择器

2013-04-18 13:56:09

Windows Pho启动器与选择器

2013-04-18 11:13:04

Windows Pho启动器与选择器BingMapsDir

2013-04-18 13:28:19

Windows Pho启动器与选择器

2012-06-20 10:21:50

Windows Pho

2012-06-21 10:59:31

Windows Pho

2012-02-02 17:10:35

Windows PhoC#发送短信

2010-08-06 15:44:28

Windows PhoWindows PhoSilverlight

2010-04-12 17:32:59

Windows Pho

2011-10-19 09:56:58

Gnome Pie程序启动器

2012-04-16 14:32:31

iOS选择器代码

2017-03-20 14:46:07

Android日期时间选择器

2011-11-28 13:42:55

Sencha Touc组件选择器

2012-12-27 14:08:39

Android开发颜色选择器

2009-06-30 13:58:00

Java启动器

2013-07-31 13:13:50

Windows PhoMVVM模式

2012-11-09 14:33:38

WindowsChrome

2014-08-12 09:54:05

Android定制化启动器

2012-04-19 08:42:22

春Phone沙龙

2009-07-16 11:02:33

Swing文件选择器
点赞
收藏

51CTO技术栈公众号