Android 我的每次gps定位中使用了多少颗卫星?
在我的应用程序中,我如何知道使用了多少颗卫星/用于gps定位的卫星数量 我尝试下面的代码,但每次都返回零Android 我的每次gps定位中使用了多少颗卫星?,android,gps,Android,Gps,在我的应用程序中,我如何知道使用了多少颗卫星/用于gps定位的卫星数量 我尝试下面的代码,但每次都返回零 public void onGpsStatusChanged(int event) { //Log.e("Gps_Status", "From on gps status changed"); if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) { GpsStatus status = m_loca
public void onGpsStatusChanged(int event)
{
//Log.e("Gps_Status", "From on gps status changed");
if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS)
{
GpsStatus status = m_locationManager._myLocationManager.getGpsStatus(null);
Iterable<GpsSatellite> sats = status.getSatellites();
// Check number of satellites in list to determine fix state
if (sats.iterator().hasNext())
{
GpsSatellite gpsSatellite=(GpsSatellite)sats.iterator().next();
if(gpsSatellite.usedInFix())
{
NO_OF_SATELLITE++;
}
Toast.makeText(this, String.valueOf(NO_OF_SATELLITE), Toast.LENGTH_LONG);
}
//Log.e("Used In FIx", String.valueOf(NO_OF_SATELLITE));
}
Log.v("Used In FIx", String.valueOf(NO_OF_SATELLITE));
// Toast.makeText(this, String.valueOf(NO_OF_SATELLITE), Toast.LENGTH_LONG);
}
public void ongpstatuschanged(int事件)
{
//Log.e(“Gps_状态”,“从Gps状态更改开始”);
如果(事件==GpsStatus.GPS\u事件\u卫星\u状态)
{
GpsStatus status=m_locationManager._myLocationManager.getGpsStatus(null);
Iterable sats=status.getSatellites();
//检查列表中的卫星数以确定固定状态
if(sats.iterator().hasNext())
{
GpsSatellite GpsSatellite=(GpsSatellite)sats.iterator().next();
if(gpsSatellite.usedInFix())
{
没有卫星++;
}
Toast.makeText(this,String.valueOf(NO_OF_SATELLITE),Toast.LENGTH_LONG);
}
//Log.e(“用于FIx”,String.valueOf(卫星号));
}
Log.v(“用于FIx”,String.valueOf(卫星号));
//Toast.makeText(this,String.valueOf(NO_OF_SATELLITE),Toast.LENGTH_LONG);
}
非常感谢您在这方面的任何帮助
谢谢
日本航空公司。答案是3 要获取GPS看到的卫星数量,我使用以下代码:
/**
* Set the no. of available satellites.
*/
public void updateSats() {
final GpsStatus gs = this.locationManager.getGpsStatus(null);
int i = 0;
final Iterator<GpsSatellite> it = gs.getSatellites().iterator();
while( it.hasNext() ) {
it.next();
i += 1;
}
this.gpsSatsAvailable = i;
}
我不检查上一次修复中是否使用了SAT。嘿,我终于找到了我的解决方案,用于获取gps中使用的卫星数量 为此,您必须使用android.location包中提供的侦听器,该侦听器与卫星通信,并在NMEA标准语句中返回响应,如$GPGSA 在得到回应后,你必须解析句子,最后你的工作就完成了 谢谢大家对这方面的评论
日本航空公司。对不起,这完全是错误的。你需要至少3颗卫星才能获得2D定位,对吧,然而,卫星越多,定位的准确性就越好。如果你读了链接,它会清楚地说“至少3颗卫星”。嘿,我不想要gps卫星的数量。但我想知道有多少颗卫星能确定我的gps位置。while(it.hasNext()){GpsSatellite sat=(GpsSatellite)it.next();if(sat.usedInFix()i+=1;}gpsSatsAvailable是什么?它只是一个存储卫星计数结果的字段。稍后用于显示此数字。
@Override
public void onGpsStatusChanged(final int event) {
switch( event ) {
// ...
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
updateSats();
break;
}
}