ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:955.50KB ,
资源ID:6977772      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6977772.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Windows Phone开发教程5Word格式文档下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Windows Phone开发教程5Word格式文档下载.docx

1、 5 TextBlock Text=状态:10 0 6 TextBlock Name=txtblkAccelerometerState Text=停止采集数据 7 8 9 更新加度计数据时间:10 txtblkupdateDataAccelerometer20ms11 12 13 14 CentertxtblkYY:Green15 RighttxtblkZZ:Blue16 17 Grid Height=30018 19 yLine6020 zLine19020021 22 23 24 复制代码这是MainPage.xaml.cs后台处理程序: public partial class Main

2、Page : PhoneApplicationPage Accelerometer accelerometer; DispatcherTimer timer; Vector3 acceleration; bool isDataValid; / 构造函数 public MainPage() InitializeComponent(); if (!Accelerometer.IsSupported) txtblkAccelerometerState.Text = 设备不支持加速计; else /初始化timer,并绑定Tick事件 timer = new DispatcherTimer(); ti

3、mer.Interval = TimeSpan.FromMilliseconds(30); timer.Tick += new EventHandler(timer_Tick); / / 开始和停止采集加速计数据/summaryparam name=sender/parame private void btnSwitch_Click(object sender, RoutedEventArgs e) if (accelerometer != null & accelerometer.IsDataValid) /停止采集加速计数据 accelerometer.Stop(); timer.Stop

4、();停止加速度度计 btnSwitch.Content = 开始采集数据 if (accelerometer = null) /实例化一个accelerometer对象 accelerometer = new Accelerometer(); /20毫秒更新一次数据 accelerometer.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20); /更新传感器数据的时间 txtblkupdateDataAccelerometer.Text = accelerometer.TimeBetweenUpdates.TotalMilliseconds

5、 + ms /从传感器获得新数据时发生 accelerometer.CurrentValueChanged += new EventHandlerSensorReadingEventArgs(accelerometer_CurrentValueChanged); try accelerometer.Start(); timer.Start(); catch (InvalidOperationException)无法启动加速计. void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs e) /这个事

6、件处理程序是被主执行线程(UI)之外的线程调用的 /不能直接访问页面上的元素,因为它们位于UI线程中 isDataValid = accelerometer.IsDataValid; acceleration = e.SensorReading.Acceleration; void timer_Tick(object sender, EventArgs e) if (isDataValid)正在从加速计获取数据 / 显示加速计的数值 txtblkX.Text = + acceleration.X.ToString(0.00); txtblkY.Text = + acceleration.Y.T

7、oString( txtblkZ.Text = + acceleration.Z.ToString( / 使用Line元素显示加速计返回的值 xLine.X2 = xLine.X1 + acceleration.X * 100; yLine.Y2 = yLine.Y1 - acceleration.Y * 100; zLine.X2 = zLine.X1 - acceleration.Z * 50; zLine.Y2 = zLine.Y1 + acceleration.Z * 50;编译运行上面的程序: 这是运行程序后的效果(没有开始采集数据) 点击开始采集数据后,Y等于-1g,表示手机(模拟

8、器)是纵向竖立的 但这样看好像并不能直观的了解加速计的作用,我们可以通过使用该模拟器的加速计模拟器工具来测试应用程序。点击模拟器的加速计工具的“播放按钮”或者是拖动加速计工作中手机上的桔红色圆点,模拟手机的各个移动状态。我们可看到页面的3个分别代表着X/Y/Z的三个Line元素随着加速计的数据变化而不断变化。2.位置服务(Location Service)Windows Phone应用程序可以通过一种被称为A-GPS(Assisted-GPS,辅助GPS)的技术获取手机当前所在的地理位置。对手机进行定位所实用的核心类是:GeocoordinateWatcher。使用时需要引用System.De

9、vice.DLL程序集,并引用System.Device.Location命名空间。WMAppManifest.xml做如下标记(默认包含):ID_CAP_LOCTIONGeocoordinateWatcher的构造方法可以接收一个GetPositionAccuracy枚举类型的参数,该枚举的成员有: Default(默认精度) High(高精度)GeocoordinateWatcher对象需要注册一个名为:PositionChanged事件,检测到位置更改时发生。PostitionChanged事件会传递一个GeoCoordinate对象,该对象有八个属性,分别是: Latitude(纬度)

10、,double类型,-90至90之间。 Longitude(经度),double类型,-180到180之间 Altitude(高度),double类型 HorizontalAccuracy(水平精度)和VerticalAccuracy(竖直精度),double类型 Course(航向),double类型,0至360之间 Speed(速度),double类型 IsUnknown,Boolean类型,当Latitude(纬度)和Longitude(经度)为非数字时,则为tureGeoCoordinate类有一个方法GetDistanceTo,用于计算两个GeoCoordinate对象的距离。北纬为

11、正值,南纬为负值;东经为正值,西经为负值。如果应用程序没有获取用户位置的授权,Latitude(纬度)和Longitude(经度)的值为Double.NaN。 现在我们通过一个示例来学习如何使用Windows Phone中的位置服务。MainPage.xaml1 30textBlock1txtblkLocationState位置服务当前不可用StackPanel500经度:0.000txtblkLatitude0 0 200 0纬度:txtblkLongitude开始定位 Height=72btnStartLocation Width=160Bottom50 0btnStartLocation

12、_Click停止定位btnStopLocationbtnStopLocation_Click这里是MainPage.xaml.cs后台处理程序:1 public partial class MainPage : 2 3 GeoCoordinateWatcher watcher; 4 / 构造函数 5 public MainPage() 6 7 InitializeComponent(); 8 910 / 11 / 开始定位12 / 13 / 14 / 15 private void btnStartLocation_Click(object sender, RoutedEventArgs e)

13、16 17 if (watcher = null)18 19 watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); / 采用高精度20 watcher.MovementThreshold = 20; / PositionChanged事件之间传送的最小距离2122 watcher.StatusChanged += new EventHandler(watcher_StatusChanged);23 watcher.PositionChanged += new EventHandlerGeoPositionChangedEve

14、ntArgs(watcher_PositionChanged);2425 watcher.Start();/开始使用位置服务26 27 else/方便测试,实际使用需要注意28 29 watcher.Start();30 31 3233 /检测到位置更改时34 /当定位服务已准备就绪并接收数据时,它将开始引发 PositionChanged 事件35 void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs36 37 this.txtblkLatitude.Text = e.Position.Location

15、.Latitude.ToString(38 this.txtblkLongitude.Text = e.Position.Location.Longitude.ToString(39 4041 /当位置服务状态发生变化时42 /在 GeoPositionStatusChangedEventArgs 对象中传递的 GeoPositionStatus 枚举获取该服务的当前状态。43 /可以使用它在应用程序中启用基于位置的功能,以及将服务的当前状态通知给用户。44 void watcher_StatusChanged(object sender, GeoPositionStatusChangedEv

16、entArgs e)45 46 switch (e.Status)47 48 /如果服务的状态为 Disabled,则可以检查 Permission 属性,看用户是否禁用了应用程序的定位服务功能。49 case GeoPositionStatus.Disabled:50 if (watcher.Permission = GeoPositionPermission.Denied)51 52 /用户禁用了定位服务53 this.txtblkLocationState.Text = 对位置服务的访问被拒绝。54 55 else56 57 this.txtblkLocationState.Text =

17、 设备的定位服务不能够正常使用。58 59 break;60 case GeoPositionStatus.Initializing:61 / 位置服务正在尝试获取数据62 this.btnStartLocation.IsEnabled = false;63 break;64 case GeoPositionStatus.NoData:65 this.txtblkLocationState.Text = 当前位置无法进行定位66 this.btnStopLocation.IsEnabled = true;67 break;68 case GeoPositionStatus.Ready:69 t

18、his.txtblkLocationState.Text = 位置服务已启用,并准备就绪70 this.btnStopLocation.IsEnabled = true;71 break;72 73 7475 / 76 / 停止定位77 / 78 / 79 / 80 private void btnStopLocation_Click(object sender, RoutedEventArgs e)81 82 watcher.Stop();83 this.btnStartLocation.IsEnabled = true;84 this.txtblkLocationState.Text = 位置服务已经停止85 86 编译运行程序后,通过模拟器可以模拟当前位置,通过使用模拟器中模拟位置工具变化当前设备所在坐标,我们可以看到程序上的数字也随之不断变化:参考资料:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2