Android-计步器的学习心得

这已经是12天没有写博客了,原因是这两个星期,一直在解决计步器。结论是:自己电脑上已经可以运用Android传感器(加速度传感器)来实现记步功能,Android自带的GPS不能在手机上实现定位,百度地图的API可以实现。总的来说,GPS肯定是比传感器更加精准,但是由于知识水平限制,只能实现加速度传感器来实现记步功能,GPS只是能实现定位,而且极其的不精准,就算用百度地图API也是要上网时才会比较精准,但是现实计步器不可能时时有网,最后还是决定暂时用传感器实现记步功能吧。下来详细说说这几个具体情况吧。

先来说加速度传感器实现记步大概步骤

首先获取SensorManager(系统所有传感器的管理器)的实例,SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);

其次获取Sensor实例,Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//用此方法得到加速器类型

然后注册sensorManager,sensorManager.registerListener(listener, sensor, SensorManager);

最后要对传感器输出的信号进行监听,需要SensorEventListener,以及它所实现的onSensorChanged()方法

这就是大概的就是实现传感器的大概步骤,下一章节给出具体的代码。

然后是Android的GPS的主要步骤

找出自己的位置,主要是通过Android的LocationManager这个类来实现的

首先是获取LocationManager的实例,LocationManager locationManager =(LocationManager)gerSystemService(Context.LOCATION_SERVICE);

Android中一般有三种位置提供器可供选择,GPS_PROVIDER,NETWORK_PROVIDER和PASSIVE_PROVIDER。GPS_PROVIDER定不了位置,搜索不到卫星,NETWORK_PROVIDER用网络也不能定位,我看网上说是因为谷歌停止了基站。

其次是获得本地位置Location, Location location =locationManager.getLastKnownLocation(LcationManager.NETWORK_PROVIDER);

//首先是定位,如果不能定位则取到上一次定位,如果是第一次运行这个程序,那么第一次定位是空的,上面也解释了不能定位,所以location一直为空。location中包含了经度、纬度、海拔等一系列的位置信息。

最后LocationManager还提供了一个requestLocationUpdates()方法,只要传入一个LocationListener的实例,locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new LocationListener())

{}

最后是百度地图API,我会在后面几张说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值