Android 怎样稳定的获取原生GPS数据

 我来答
lirongshengI4
活跃答主

推荐于2017-09-15 · 来这里与你纸上谈兵
知道大有可为答主
回答量:2万
采纳率:97%
帮助的人:6316万
展开全部
定位了就有经纬度,没定位,则一直闪的;
  一般是4个星的时候 会定位。
  所以可以根据是否获取有效的经纬度信息来判断是否定位。

  卫星的个数 sv_status也是可以通过API获取的。LOCATION类
给你一段我的代码,看看就知道了。

locationManager.addGpsStatusListener(statusListener);//侦听GPS状态

private GpsStatus.Listener statusListener = new GpsStatus.Listener()

{

public void onGpsStatusChanged(int event)

{

// TODO Auto-generated method stub

GpsStatus gpsStatus= locationManager.getGpsStatus(null);

Log.v(TAG,"GPS status listener ");

//Utils.DisplayToastShort(GPSService.this, "GPS status listener ");

switch(event)

{

case GpsStatus.GPS_EVENT_FIRST_FIX:{

//第一次定位时间UTC gps可用

//Log.v(TAG,"GPS is usable");

int i=gpsStatus.getTimeToFirstFix();

Utils.DisplayToastShort(GPSService.this, "GPS 第一次可用 "+i);

Utils.setGPSStatus(Utils.GPS_STATUS.START);

break;

}

case GpsStatus.GPS_EVENT_SATELLITE_STATUS:{//周期的报告卫星状态

//得到所有收到的卫星的信息,包括 卫星的高度角、方位角、信噪比、和伪随机号(及卫星编号)

Iterable<GpsSatellite> allSatellites;

allSatellites = gpsStatus.getSatellites();

Iterator<GpsSatellite>iterator = allSatellites.iterator();

int numOfSatellites = 0;

int maxSatellites=gpsStatus.getMaxSatellites();

while(iterator.hasNext() && numOfSatellites<maxSatellites){

numOfSatellites++;

iterator.next();

}

Log.v(TAG,"GPS is **unusable** "+ numOfSatellites +" "+ maxSatellites);

if( numOfSatellites < 3){

// Utils.DisplayToastShort(GPSService.this, "***卫星少于3颗***");

Utils.setGPSStatus(Utils.GPS_STATUS.STOP);

} else if(numOfSatellites > 7){

Utils.setGPSStatus(Utils.GPS_STATUS.START);

}

break;

}

case GpsStatus.GPS_EVENT_STARTED:{

//Utils.DisplayToastShort(GPSService.this, "GPS start Event");

break;

}

case GpsStatus.GPS_EVENT_STOPPED:{

//Utils.DisplayToastShort(GPSService.this, "GPS **stop*** Event");

Utils.setGPSStatus(Utils.GPS_STATUS.STOP);

break;

}

default :

break;

}

}

};
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式