WEB开发网
开发学院手机开发Windows Mobile 开发 为Windows Mobile设备创建位置感知的应用程序 阅读

为Windows Mobile设备创建位置感知的应用程序

 2011-01-06 10:59:01 来源:WEB开发网   
核心提示: 首页完成改版,来提意见如下代码展示了如何通过GPSID一步获取位置,为Windows Mobile设备创建位置感知的应用程序(4),private void menuLocationUpdates_Click(object sender, EventArgs e){if (menuLocationUpdates.C
首页完成改版,来提意见

如下代码展示了如何通过GPSID一步获取位置。

private void menuLocationUpdates_Click(object sender, EventArgs e)

{

if (menuLocationUpdates.Checked)

{

menuLocationUpdates.Checked = false;

gps.LocationChanged -= gps_LocationChanged;

}

else

{

menuLocationUpdates.Checked = true;

gps.LocationChanged += new

LocationChangedEventHandler(gps_LocationChanged);

}

}

private delegate void UpdateLocationInfo();

void gps_LocationChanged(object sender, LocationChangedEventArgs args)

{

GpsPosition position = args.Position;

LatLong location = new LatLong();

if (position.LatitudeValid)

location.Latitude = position.Latitude;

if (position.LongitudeValid)

location.Longitude = position.Longitude;

if (position.HeadingValid)

location.Heading = position.Heading;

StringBuilder sb = new StringBuilder();

sb.AppendLine();

sb.Append("Latitude = ");

sb.AppendLine(location.Latitude.ToString());

sb.Append("Longitude = ");

sb.AppendLine(location.Longitude.ToString());

sb.Append("Heading = ");

sb.AppendLine(location.Heading.ToString());

label2.Invoke((UpdateLocationInfo)delegate()

{

label2.Text = sb.ToString();

});

}

GPSID与电池

在上面的第二段代码示例中,位置信息仅仅是更新并提供给用户。在某些情况下,合理的做法是添加代码使应用程序工作于前台时更新位置信息(例如在地图中显示位置信息的更新),而在应用程序转到后台时停止位置信息的持续更新。限制工作于后台的应用程序的运行以节省电池电量。在这样的情况下你甚至可以通过在应用程序转到后台时关闭GPSID连接,而在程序转到前台时重新打开的方式来节省更多的电量。下面的代码演示了如何优化应用程序以维持电池的寿命。应用程序通过对MainForm对象引发的Activated事件作出反应,从而在每次应用程序转到前台时注册LocationChanged事件。通过对MainForm对象引发的Deactivate事件作出反应,在每次应用转到后台时解除LocationChanged事件的绑定。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Windows Mobile 设备

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接