通过adb使用geo fix命令时,我似乎无法获得卫星计数。
地理修复帮助显示:
geo fix <longitude> <latitude> [<altitude> [<satellites>]]
allows you to send a simple GPS fix to the emulated system
The parameters are:
<longitude> longitude, in decimal degrees
<latitude> latitude, in decimal degrees
<altitude> optional altitude in meters
<satellites> number of satellites being tracked (1-12)
我使用以下命令设置地理位置以触发OnLocationChanged执行:
geo fix -106.1221 52.1311 514 5
在OnlocationChanged:
Location newestloc = loc;
Bundle sats = newestloc.getExtras();
int satcount = 0;
satcount = sats.getInt("satellites");
然而,每当我打电话给satcount时,我总是得到0.是否通过geo fix传递的卫星数量不计算在内?
有没有其他方法可以获取手机GPS当前看到的号码卫星?
编辑: 我也尝试过以下代码:
GpsStatus gpsstat = mlocManager.getGpsStatus(null);
Iterable sats = gpsstat.getSatellites();
Iterator satI = sats.iterator();
int count = 0;
while(satI.hasNext()){
GpsSatellite gpssatellite = (GpsSatellite) satI.next();
if (gpssatellite.usedInFix()){
count++;
}
}
每次我得到修复时,这应该至少返回1,但它永远不会从0更改。
答案 0 :(得分:1)
http://developer.android.com/reference/android/location/GpsStatus.html
尝试getSatellites()
您正在测试哪种类型的手机? 您是否尝试过检查lbstest模式返回的内容?可能是手机本身没有拿起任何卫星。
答案 1 :(得分:1)
Android在某些版本中处理geo fix命令似乎存在一个错误。您可能想尝试geo fix -106.1221 52.1311 514 5 12
,其中在某些实施中忽略数字5,并将12视为卫星数量。
因此,有缺陷系统的实际语法将是
geo fix <longitude> <latitude> [<altitude> [<dummy> <satellites>]]
答案 2 :(得分:-1)
关闭这个问题,因为我无法找到信息和应用程序似乎在没有卫星数量的情况下正常运行,因为那只是我们正在看的额外字段。