我试图从android获取卫星信息并写下以下代码,但没有给出任何结果,任何人都可以指出为什么会如此?
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.gps);
final LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
GpsStatus gpsStatus = locationManager.getGpsStatus(null);
if(gpsStatus != null)
{
Iterable<GpsSatellite>satellites = gpsStatus.getSatellites();
Iterator<GpsSatellite>sat = satellites.iterator();
int i=0;
while (sat.hasNext()) {
GpsSatellite satellite = sat.next();
strGpsStats+= (i++) + ": " + satellite.getPrn() + "," + satellite.usedInFix() + "," + satellite.getSnr() + "," + satellite.getAzimuth() + "," + satellite.getElevation()+ "\n\n";
}
}
TextView tv = (TextView)(findViewById(R.id.Gpsinfo));
tv.setText(strGpsStats);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Nohsib
Squ*_*onk 10
根据文件LocationManager.getGpsStatus(...)...
这应仅从
onGpsStatusChanged(int)回调中调用,以确保以原子方式复制数据.
尝试GpsStatus.Listener在您的活动上实施并覆盖onGpsStatusChanged(int).例...
public class MyActivity extends Activity implements GpsStatus.Listener {
LocationManager locationManager = null;
TextView tv = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gps);
tv = (TextView)(findViewById(R.id.Gpsinfo));
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.addGpsStatusListener(this);
}
@Override
public void onGpsStatusChanged(int) {
GpsStatus gpsStatus = locationManager.getGpsStatus(null);
if(gpsStatus != null) {
Iterable<GpsSatellite>satellites = gpsStatus.getSatellites();
Iterator<GpsSatellite>sat = satellites.iterator();
int i=0;
while (sat.hasNext()) {
GpsSatellite satellite = sat.next();
strGpsStats+= (i++) + ": " + satellite.getPrn() + "," + satellite.usedInFix() + "," + satellite.getSnr() + "," + satellite.getAzimuth() + "," + satellite.getElevation()+ "\n\n";
}
tv.setText(strGpsStats);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15134 次 |
| 最近记录: |