智能手机应用开发:生日提醒工具

智能手机已经成为生活中不可或缺的一部分。它们不仅仅是通讯工具,还充当着日程安排者、提醒器、组织者、文件共享者、个性化音乐系统等角色。作为一名手机爱好者,曾经是诺基亚(Symbian OS)的粉丝,而现在成为了Windows Mobile的忠实拥趸。

作为一名Windows开发者,拥有一部Windows Mobile手机意味着可以利用.NET编程技能,为手机创建个性化的应用程序。

工作原理

经常忘记亲友的生日,因此经常遭到妻子的责备和朋友的嘲笑。为了克服这个问题,开发了这个工具来帮助自己。

这个工具会在手机上扫描一个包含人们信息的应用程序数据库,查找与当前日期匹配的生日。如果找到匹配项,代码会自动向那个人的手机号码以及手机发送短信提醒。这样一来,就不需要记住任何生日,只需一次性输入应用程序,剩下的就交给代码来处理。

先决条件

需要一部支持.NETCompact Framework (.NET CF) 3.0和SQL Server CE(Compact Edition)的手机。Windows Mobile 6.0及以上版本默认支持这些功能。对于Symbian手机,可以从Red Five Labs获取.NET CF,但最近他们的网站似乎无法访问,可能需要通过Google搜索来找到下载资源。

需要明确安装在手机上的文件列表如下:

  • Sqlce.dev.ENU.phone.wce5.armv4i.cab
  • Sqlce.dev.ENU.wce.armv4i.cab
  • Sqlce.ppc.wce5.armv4i.cab
  • Sqlce30.wce5.armv4i.cab

这些文件可以在SQL Server 2005 CE文件夹中找到。

开发工具

对于开发,需要Visual Studio 2005/2008 IDE和Smartphone开发SDK。可以从以下网址下载:

  • SQL Server 2005 CE:
  • SQL Server 2005 CE SDK:
  • .NET CF:
  • Windows Mobile 6.0 Professional SDK:

准备用户界面

设计用户界面相对简单,只需要一点创意。手机屏幕相对较小,因此使用标签控制很有用,可以将功能分隔到多个标签中,使屏幕看起来不那么拥挤。

将展示在应用程序中使用的用户界面图片,可以根据自己的喜好进行定制。

要创建移动应用程序,打开Visual Studio 2005/2008并创建一个新项目。这将打开一个新项目窗口。选择偏好的语言下的Smart Device。

点击OK后,将进一步打开一个屏幕,用于选择智能手机平台类型。

在这里选择“Device Application”。

这里可以查看每条记录的详细信息。暂时忽略“Stop the Timer”按钮,稍后会解释。

在屏幕上显示所有记录。

这个屏幕显示一个文本框,其中包含将自动发送给寿星的消息。

在遭受妻子的严厉批评后,应该为劳动成果获得一些赞誉。

源代码

这里没有复杂的技术内容,以下是步骤说明:

准备表结构。打开SQL Server Management Studio并创建一个新表。它将保存数据库到选择的位置,并带有SDF扩展名。例如:

abc.sdf

字段“sno”是自动生成的主键。

将这个新创建的表添加到应用程序中。添加数据库时,会提示创建DataSet。继续创建它。这将为项目添加DataSet Table Adapter和绑定源。

一切准备就绪,现在可以开始了。Table Adapter非常有用,因为它简化了执行DML(数据操作语言)任务,例如,要删除一条记录,只需要编写以下代码:

VB.NET BirthDayInfoTableAdapter.Delete(<要删除的主键值>) BirthDayInfoTableAdapter.Fill(BirthDayInfoDataSet.BirthDayInfo)

在上面的代码中,首先删除记录,然后重新填充数据集(相当于刷新数据集)。

检查生日的主要代码是:

VB.NET For i = 0 To BirthDayInfoDataSet.BirthDayInfo.Rows.Count - 1 If BirthDayInfoDataSet.BirthDayInfo(i).dateOfBirth.Day = Date.Now.Day And _ BirthDayInfoDataSet.BirthDayInfo(i).dateOfBirth.Month = Date.Now.Month Then Dim sms As New SmsMessage(BirthDayInfoDataSet.BirthDayInfo(i).mobileNumber, _ "Hi " & BirthDayInfoDataSet.BirthDayInfo(i).fullName & vbCrLf & txtMessage.Text) sms.Send() Dim sms2 As New SmsMessage("mobile number", _ "Hi " & BirthDayInfoDataSet.BirthDayInfo(i).fullName & vbCrLf & txtMessage.Text) sms2.Send() End If Next

如果匹配,所有生日和月份都存储在表中,与当前日期和月份进行匹配。如果匹配,发送短信,否则跳过。

SmsMessage是用于发送消息的内置库。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485