android JAVA 层API GPS 研究总结

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以导入需要的包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值