`
java-mans
  • 浏览: 11416347 次
文章分类
社区版块
存档分类
最新评论

Windows Phone 7 Dev 短信_电话_邮件

 
阅读更多

还是从一个很失败的应用开始说起,我在业余时间会学这么点Windows Phone开发,前段时间用了5个小时写了一个应用《移动短信营业厅》,话说这个应用和我的第一个《猜数字》比起来,简直是弱爆了,核心代码只有四行:

SmsComposeTask sendsms = new SmsComposeTask();
sendsms.To = "10086";
sendsms.Body = "119";
sendsms.Show();

Windows Phone的任何应用都是只能运行于自己的独立沙盒中,只能直接访问自己多对应的独立存储空间。在这里Windows Phone的设计之中,其实还是借鉴了iOS的设计的。就如新的Windows 8看到它的开始菜单,就好像是MacLaunchPad的样子。言归正传,Windows Phone的应用程序无法直接访问其他应用沙盒的常规数据,比如说我们今天的Windows Phone的通讯。我们不能再屏幕上只显示一句话:“短信发送中,正在拨通号码XXX,邮件发送中。。。。。。”之后就自动做这些通讯的事儿,但是在Android中我们却能看到这些。

但是微软为我们提供了Choosers/Launchers框架让我们来间接使用这些。这样就防止了那些写吸费软件的公司,写一些在用户不知情的情况写发什么业务短信的程序,因为所有的短信,电话,最终都需要用户自己去决定是否发送信息,或拨打电话等等。通过Choosers/Launchers框架我们可以调用一个系统内置应用的API。那么ChoosersLaunchers的区别是什么呢,其实我们在这两个单词的意思上应该已经可以看出他们的相应作用,Choosers在应用调用后,可以返回一定的数据,比如我们的应用使用Choosers调用了联系人,在我们选择一个联系人后,会为我们将选择的联系人的相应信息返回给我们的应用程序;Launchers被调用后不会返回任何数据,比如我们使用launchers去执行一个打电话的操作,它就会调用拨号器,之后把电话号码填入拨号器,之后由用户选择是否拨打电话。

现在我们的SDK中提供了6Choosers10 Launchers

ChoosersPhoneNumberChooserTask(电话号码选择器),EmailAddressChooserTaskE-mail地址选择器),PhotoChooserTask (照片选择器),CameraCaptureTask (摄像头选择器),SavePhoneNumberTask(保存电话号码选择器), SaveEmailAddressTask(保存电子邮件地址选择器)。

LaunchersSmsComposeTask(发送短信),PhoneCallTask(拨打电话),EmailComposeTask(发送电子邮件),MediaPlayerLauncher(媒体播放器),SearchTask(搜索),WebBrowserTask(打开浏览器),MarketplaceHubTask(应用商店),MarketplaceDetailTask(应用商店详情),MarketplaceReviewTask(应用商店评论),MarketplaceSearchTask(应用商店搜索)。

Launchers的使用:

发送短信:

本文开始的时候我给出了四行代码,实例一个SmsComposeTask对象sendsms,设置发送至“10086” sendsms.To ="10086",内容为“119” sendsms.Body = "119",之后调用API打开短信面板sendsms.Show(),这样这个功能就完成了。

SmsComposeTask sendsms = new SmsComposeTask();
sendsms.To = "10086";
sendsms.Body = "119";
sendsms.Show();
拨打电话:
//初始化 Microsoft.Phone.Tasks.PhoneCallTask 类的新实例。
PhoneCallTask callsomeone = new PhoneCallTask();
//获取或设置启动“手机”应用程序时拨打的电话号码。
callsomeone.PhoneNumber = "13477777777";
//获取或设置启动“手机”应用程序时显示的名称。
callsomeone.DisplayName = "Wintelsui的私人电话";
//显示“手机”应用程序。
callsomeone.Show();
发送邮件:
//实例EmailComposeTask对象sendemail
EmailComposeTask sendemail = new EmailComposeTask();
//获取或设置新电子邮件中“收件人”行的收件人。
sendemail.To = "wintelsui@gmail.com";
//获取或设置新电子邮件的主题。
sendemail.Subject = "HelloWintelsui";
//获取或设置新电子邮件的正文。
sendemail.Body = "这是详细内容";
//显示“手机”应用程序。
sendemail.Show();
由于在模拟器上不能设置账户,所以模拟器的发送邮件部分不能使用,所以暂不提供图片。
 Choosers的使用:
private void button4_Click(object sender, RoutedEventArgs e)
        {
            //初始化 Microsoft.Phone.Tasks.PhoneNumberChooserTask 类的新实例。
            PhoneNumberChooserTask someonesphonenumber = new PhoneNumberChooserTask();
            //显示“联系人”应用程序。
            someonesphonenumber.Show();
        }

        private void button5_Click(object sender, RoutedEventArgs e)
        {
            //初始化 Microsoft.Phone.Tasks.EmailAddressChooserTask 类的新实例。
            EmailAddressChooserTask someoneemailaddress = new EmailAddressChooserTask();
            //显示电子邮件地址选择器应用程序。
            someoneemailaddress.Show();
        }

        private void button6_Click(object sender, RoutedEventArgs e)
        {
            //初始化 Microsoft.Phone.Tasks.SavePhoneNumberTask 类的新实例。
            SavePhoneNumberTask savenumber = new SavePhoneNumberTask();
            //获取或设置可以保存到联系人的电话号码。
            savenumber.PhoneNumber = textBox1.Text.Trim();
            //显示“联系人”应用程序。
            savenumber.Show();
        }

        private void button7_Click(object sender, RoutedEventArgs e)
        {
            //初始化 Microsoft.Phone.Tasks.SavePhoneNumberTask 类的新实例。
            SaveEmailAddressTask saveemailaddress = new SaveEmailAddressTask();
            //类型:System.String。可以保存到联系人的电话号码。
            saveemailaddress.Email = textBox1.Text.Trim();
            //显示“联系人”应用程序。
            saveemailaddress.Show();
        }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics