卫星数量有两种:卫星总数(all),和已校准卫星数(fixed);
卫星数量来源于gps定位数据,gps数据来源又有两种:内置gps和外接gps设备。
一、内置gps数据来源的计算方式
开始启用内置gps时,通过
LocationManager.addGpsStatusListener()
api,监听gps状态,在监听的回调中计算卫星数量,代码:mGpsStatusCallback = new GpsStatus.Listener() { @Override public void onGpsStatusChanged(int event) { if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) { //卫星状态改变 fetchCurGpsStatus(); } } }; mService = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE); mService.addGpsStatusListener(mGpsStatusCallback);
注册监听永远要记得在不再需要时解除监听,当关闭内置gps时,移除监听:
mService.removeGpsStatusListener(mGpsStatusCallback);
卫星状态改变时,首先获取
GpsStatus
,通过如下方式处理ÿ