技术开发 频道

OPhone学习笔记 - 定位(2)

  四、获取卫星信息

  本段代码参考http://www.ophonesdn.com/article/show/46,本以为可以看到模拟器上的卫星信息,没想到都是空的。只能在真机上看到卫星信息。

mLoc = mService.getLastKnownLocation(LocationManager.GPS_PROVIDER);
String mLongitude,mLatitude,mAltitude,mSpeed,mBearing,mTime,mAccuracy,mSatelliteInfo;
mSatelliteInfo
= "";
  
if (mLoc != null) {
// 经度
mLongitude = String.valueOf(mLoc.getLongitude());
// 纬度
mLatitude = String.valueOf(mLoc.getLatitude());
// 高度
mAltitude = String.valueOf(mLoc.getAltitude());
// 速度
mSpeed = String.valueOf(mLoc.getSpeed());
// 方位 0 - 360度
mBearing = String.valueOf(mLoc.getBearing());
// 世界戳 从1970/1/1起始,单位: 毫秒
  mTime = String.valueOf(mLoc.getTime());
  
// 定位精度,单位: 米  
if (mLoc.hasAccuracy())
mAccuracy
= String.valueOf(mLoc.getAccuracy());
else
  mAccuracy
= "no accuracy";
  Bundle bundle
= mLoc.getExtras();
  
if (null != bundle){  
// 首次定位时间 TTFF = Time to First Fix,单位: 秒
int ttff = bundle.getInt("TTFF", 0);
String mTTFF
= String.valueOf(ttff);
// 参与定位的卫星个数
int numSatellite = bundle.getInt("NumSatellite", 0);
  String mNumSatellite
= String.valueOf(numSatellite);
  
if (numSatellite != 0) {
for (int m = 0; m < numSatellite; m++) {
// 卫星的ID
mSatelliteInfo += String.valueOf(m + 1) + ": " + "ID " + String.valueOf(bundle.getInt("SatelliteID" + m, 0)) + ", ";
// 卫星的信号强度 C/NO
mSatelliteInfo += "Strength: " + String.valueOf(bundle.getInt("SignalStrength" + m, 0)) + ", ";
// 方位角
mSatelliteInfo += "Azimuth: " + String.valueOf(bundle.getInt("Azimuth" + m, 0)) + ", ";
// 标高
  mSatelliteInfo += "ElevationAngle: " + String.valueOf(bundle.getInt("ElevationAngle" + m, 0)) + "\n";}  }  }  
tv.setText(
"longtitude:"+mLongitude+";"+"\n"+"latitude:"+mLatitude+";"+"\n"+"altitude:"+mAltitude+"\n"+"speed:"+mSpeed+"\n"+"bearing:"+mBearing+"\n"+"time:"+mTime+"\n"+"Accuracy:"+mAccuracy+"\n"+"satinfo:"+mSatelliteInfo);

}

  运行结果如图所示:

0
相关文章