作者:徐晨程东_324 | 来源:互联网 | 2023-10-12 17:41
还是从一个很失败的应用开始说起,我在业余时间会学这么点WindowsPhone开发,前段时间用了5个小时写了一个应用《移动短信营业厅》,话说这个应用和我的第一个《猜数字》比起来,简直
还是从一个很失败的应用开始说起,我在业余时间会学这么点Windows Phone开发,前段时间用了5个小时写了一个应用《移动短信营业厅》,话说这个应用和我的第一个《猜数字》比起来,简直是弱爆了,核心代码只有四行:
SmsComposeTask sendsms = new SmsComposeTask();
sendsms.To = "10086";
sendsms.Body = "119";
sendsms.Show();
Windows Phone的任何应用都是只能运行于自己的独立沙盒中,只能直接访问自己多对应的独立存储空间。在这里Windows Phone的设计之中,其实还是借鉴了iOS的设计的。就如新的Windows 8看到它的开始菜单,就好像是Mac的LaunchPad的样子。言归正传,Windows Phone的应用程序无法直接访问其他应用沙盒的常规数据,比如说我们今天的Windows Phone的通讯。我们不能再屏幕上只显示一句话:“短信发送中,正在拨通号码XXX,邮件发送中。。。。。。”之后就自动做这些通讯的事儿,但是在Android中我们却能看到这些。
但是微软为我们提供了Choosers/Launchers框架让我们来间接使用这些。这样就防止了那些写吸费软件的公司,写一些在用户不知情的情况写发什么业务短信的程序,因为所有的短信,电话,最终都需要用户自己去决定是否发送信息,或拨打电话等等。通过Choosers/Launchers框架我们可以调用一个系统内置应用的API。那么Choosers和Launchers的区别是什么呢,其实我们在这两个单词的意思上应该已经可以看出他们的相应作用,Choosers在应用调用后,可以返回一定的数据,比如我们的应用使用Choosers调用了联系人,在我们选择一个联系人后,会为我们将选择的联系人的相应信息返回给我们的应用程序;Launchers被调用后不会返回任何数据,比如我们使用launchers去执行一个打电话的操作,它就会调用拨号器,之后把电话号码填入拨号器,之后由用户选择是否拨打电话。
现在我们的SDK中提供了6个Choosers和10 Launchers:
Choosers:PhoneNumberChooserTask(电话号码选择器),EmailAddressChooserTask(E-mail地址选择器),PhotoChooserTask (照片选择器),CameraCaptureTask (摄像头选择器),SavePhoneNumberTask(保存电话号码选择器), SaveEmailAddressTask(保存电子邮件地址选择器)。
Launchers:SmsComposeTask(发送短信),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对象sendemailEmailComposeTask 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();
}