热门标签 | 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();
}

 


推荐阅读
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文介绍了如何通过创建自定义 XML 文件来修改 Android 中 Spinner 的项样式,包括颜色和大小的调整。 ... [详细]
  • 我在尝试将组合框转换为具有自动完成功能时遇到了一个问题,即页面上的列表框也被转换成了自动完成下拉框,而不是保持原有的多选列表框形式。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 本文详细介绍了Golang中string类型的内部结构及其特性,包括字符串的定义、表示方式、数据结构以及相关的操作方法,如字符串拼接和类型转换等。 ... [详细]
  • 本文介绍了一个实用的工具类 `ListExtensions`,提供了多种针对 `List` 的扩展方法,包括无序和有序列表中的对象检索及计数功能。 ... [详细]
  • 深入解析Nacos服务自动注册机制
    本文将探讨Nacos服务自动注册的具体实现方法,特别是如何通过Spring事件机制完成服务注册。通过对Nacos源码的详细分析,帮助读者理解其背后的原理。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 本文介绍如何通过创建数据库触发器来限制Oracle数据库中特定用户的登录IP地址,以增强系统的安全性。示例代码展示了如何阻止非授权IP地址的登录尝试。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
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社区 版权所有