热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WindowsPhone7Dev短信_电话_邮件

还是从一个很失败的应用开始说起,我在业余时间会学这么点WindowsPhone开发,前段时间用了5个小时写了一个应用《移动短信营业厅》,话说这个应用和我的第一个《猜数字》比起来,简直

        还是从一个很失败的应用开始说起,我在业余时间会学这么点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对象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();
}

 


推荐阅读
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文探讨了在UC浏览器中调用分享面板后,图片无法正常显示的问题,并提供了详细的解决方法和代码示例。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 本文介绍了如何在iOS应用中自定义导航栏按钮,包括使用普通按钮和图片生成导航条专用按钮的方法。同时,探讨了在不同版本的iOS系统中实现多按钮布局的技术方案。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • springMVC JRS303验证 ... [详细]
author-avatar
徐晨程东_324
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有