Android GPS定位测试
作者:网络转载 发布时间:[ 2014/1/10 15:31:24 ] 推荐标签:测试 android GPS
3、GpsStatus监听器
上面给出了定位服务的初始化设置步骤,但我们都知道GPS卫星是定期广播数据的,也是说会定期收到卫星的GPS数据。我们并不能跟卫星主动申请数据,只能被动接收数据。(中国的北斗2倒是可以发送卫星报文给卫星)因此我们需要注册一个监听器来处理卫星返回的数据。
//Edited by mythou
//http://www.cnblogs.com/mythou/
private final GpsStatus.Listener statusListener = new GpsStatus.Listener()
{
public void onGpsStatusChanged(int event)
{
// GPS状态变化时的回调,获取当前状态
GpsStatus status = locationManager.getGpsStatus(null);
//自己编写的方法,获取卫星状态相关数据
GetGPSStatus(event, status);
}
};
4、获取搜索到的卫星
//Edited by mythou
//http://www.cnblogs.com/mythou/
private void GetGPSStatus(int event, GpsStatus status)
{
Log.d(TAG, "enter the updateGpsStatus()");
if (status == null)
{
}
else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS)
{
//获取大的卫星数(这个只是一个预设值)
int maxSatellites = status.getMaxSatellites();
Iterator<GpsSatellite> it = status.getSatellites().iterator();
numSatelliteList.clear();
//记录实际的卫星数目
int count = 0;
while (it.hasNext() && count <= maxSatellites)
{
//保存卫星的数据到一个队列,用于刷新界面
GpsSatellite s = it.next();
numSatelliteList.add(s);
count++;
Log.d(TAG, "updateGpsStatus----count="+count);
}
mSatelliteNum = numSatelliteList.size();
}
else if(event==GpsStatus.GPS_EVENT_STARTED)
{
//定位启动
}
else if(event==GpsStatus.GPS_EVENT_STOPPED)
{
//定位结束
}
}
上面是从状态值里面获取搜索到的卫星数目,主要是通过status.getSatellites()实现。获取到的GpsSatellite对象,
保存到一个队列里面,用于后面刷新界面。上面是获取GPS状态监听器,除了GPS状态外,我们还需要监听一个服务,
是:LocationListener,定位监听器,监听位置的变化。这个对做定位服务的应用来说,十分重要。
5、LocationListener监听器
//Edited by mythou
//http://www.cnblogs.com/mythou/
private final LocationListener locationListener = new LocationListener()
{
public void onLocationChanged(Location location)
{
//当坐标改变时触发此函数,如果Provider传进相同的坐标,它不会被触发
updateToNewLocation(location);
Log.d(TAG, "LocationListener onLocationChanged");
}
public void onProviderDisabled(String provider)
{
//Provider被disable时触发此函数,比如GPS被关闭
Log.d(TAG, "LocationListener onProviderDisabled");
}
public void onProviderEnabled(String provider)
{
// Provider被enable时触发此函数,比如GPS被打开
Log.d(TAG, "LocationListener onProviderEnabled");
}
public void onStatusChanged(String provider, int status, Bundle extras)
{
Log.d(TAG, "LocationListener onStatusChanged");
// Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
if (status == LocationProvider.OUT_OF_SERVICE || status == LocationProvider.TEMPORARILY_UNAVAILABLE) {
}
}
};
位置监听回调是用来处理GPS位置发生变化的时候,自动回调的方法,我们可以从这里获取到当前的GPS数据。另外我们可以通过回调函数提供的location参数,获取GPS的地理位置信息,包括经纬度、速度、海拔等信息。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11