mgr=(LocationManager)getSystemService(LOCATION_SERVICE);
mgr.addGpsStatusListener(listener);
Criteria criteria= new Criteria();
best=mgr.getBestProvider(criteria, true);
Location location= mgr.getLastKnownLocation("gps");
以上代码创建了一个位置对象
if(location.hasAccuracy()) accuracy=location.getAccuracy();//获取精度
if(location.hasAltitude()) altitude=location.getAltitude();//高度
if(location.hasBearing()) bearing=location.getBearing();
if(location.hasSpeed()) speed=location.getSpeed();
latitude=location.getLatitude();
longtitude=location.getLongitude();
time=location.getTime();
//此时time是一个long型代表从1970年01月01日00:00:00至GPS取得位置信息的时间的毫秒数。
//要转换成日期字符串格式,使用以下代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH/mm/ss/");
Log.d(tag, "bb*1000,,"+sdf.format(new Date(time*1000L ))+"BB"); //如果time代表的是秒数要乘1000
Log.d(tag, "bb no*1000,,"+sdf.format(new Date(time ))+"BB"); //如果time代表毫秒数就不用乘1000了
注意要在AndroidManifest.xml文件中加入权限。如下:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
listener = new GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
gpsstatus=mgr.getGpsStatus(null);
switch(event)
{
case GpsStatus.GPS_EVENT_FIRST_FIX:gpsstatus.getTimeToFirstFix();
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
//得到所有收到的卫星的信息,包括 卫星的高度角、方位角、信噪比、和伪随机号(及卫星编号)
Log.d(tag, "get 卫星信息");
Iterable<GpsSatellite> allSatellites;
allSatellites = gpsstatus.getSatellites();
Iterator it=allSatellites.iterator();
String msg="";
while(it.hasNext())
{
GpsSatellite oSat = (GpsSatellite) it.next() ;
msg="\n*************\nazimuth:"+oSat.getAzimuth();
msg+="\nprn:"+oSat.getPrn();
msg+="\nsnr:"+oSat.getSnr()+"\n********\n";
}
Log.i(tag,msg);
break;
case GpsStatus.GPS_EVENT_STARTED:
//Event sent when the GPS system has started.
break;
case GpsStatus.GPS_EVENT_STOPPED:
//Event sent when the GPS system has stopped.
break;
default :
break;
}
}
};
记得在eclipse中,使用ctrl+shift+o以导入需要的包。