分享

Android GPS JAVA应用程序编程:获得经纬度,卫星信息等

 weicat 2011-08-05
Android GPS JAVA应用程序编程:获得经纬度,卫星信息等
[日期:2011-07-28] 来源:Linux社区  作者:CAIYUNFREEDOM
 
Android GPS JAVA应用程序编程:获得经纬度,卫星信息等
package android.test;  
  
import java.util.Iterator;  
  
import Android.app.Activity;  
import Android.location.Criteria;  
import Android.location.GpsSatellite;  
import Android.location.GpsStatus;  
import Android.location.Location;  
import Android.location.LocationListener;  
import Android.location.LocationManager;  
import Android.os.Bundle;  
import Android.location.GpsStatus.Listener;  
import Android.location.GpsStatus;  
import Android.util.Log;  
import Android.view.View;  
import Android.widget.Button;  
import Android.widget.TextView;  
import Android.widget.Toast;  
  
public class TestActivity extends Activity implements LocationListener    
{  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        Log.i(tag, "on Create");  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        btn=(Button)findViewById(R.id.btn);  
        tv1=(TextView)findViewById(R.id.tv1);  
        tv2=(TextView)findViewById(R.id.tv1);  
        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:  
                   //得到所有收到的卫星的信息,包括 卫星的高度角、方位角、信噪比、和伪随机号(及卫星编号)   
            Iterable<GpsSatellite> allSatellites;  
            allSatellites = gpsstatus.getSatellites();  
            Iterator it=allSatellites.iterator();  
            String msg="";  
            while(it.hasNext())  
            {  
                GpsSatellite oSat = (GpsSatellite) it.next() ;   
                 msg="azimuth:"+oSat.getAzimuth();  
                msg+="\nprn:"+oSat.getPrn();  
                msg+="\nsnr:"+oSat.getSnr();  
            }  
            tv2.setText(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;  
                }  
                  
            }  
     };  
        btn.setOnClickListener(new Button.OnClickListener()  
        {  
  
            @Override  
            public void onClick(View arg0) {  
                // TODO Auto-generated method stub   
                Log.i(tag, "on button click");  
                getdata();  
                show();  
            }  
              
        });  
           
    }  
   void show()  
   {  
       String msg="";  
       msg+="latitude:"+latitude;  
       msg+="\nlongtitude:"+longtitude;  
       msg+="\naltitude:"+altitude;  
       msg+="\naccuracy:"+accuracy;  
       msg+="\nbearing:"+bearing;  
       msg+="\nspeed:"+speed;  
       msg+="\ntime:"+time;  
       tv1.setText(msg);  
       //Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();   
   }  
   GpsStatus.Listener listener;  
   private GpsStatus gpsstatus;  
    private final String tag="TEST_MAY";  
    private LocationManager mgr;  
    private Button btn;  
    private TextView tv1,tv2;  
    private String best;  
    private double latitude;  
    private double longtitude;  
    private double altitude;  
    private float accuracy;  
    private float bearing;  
    private float speed;  
    private long time;  
    private void getdata()  
    {  
          
        try  
        {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();  
        Log.d(tag, "getdata");  
        if(location.hasAltitude()) altitude=location.getAltitude();  
        if(location.hasBearing()) bearing=location.getBearing();  
        if(location.hasSpeed()) speed=location.getSpeed();  
        Log.d(tag, "getsomedata");  
          
            latitude=location.getLatitude();  
            longtitude=location.getLongitude();  
            time=location.getTime();  
              
        }  
        catch( NullPointerException e)  
        {  
              
        }  
          
    }  
     
    @Override  
    public void onLocationChanged(Location location) {  
        // TODO Auto-generated method stub   
        Toast.makeText(this, location.toString(), Toast.LENGTH_SHORT).show();  
    }  
    @Override  
    public void onProviderDisabled(String provider) {  
        // TODO Auto-generated method stub   
        Toast.makeText(this, provider+" disable", Toast.LENGTH_SHORT).show();  
    }  
    @Override  
    public void onProviderEnabled(String provider) {  
        // TODO Auto-generated method stub   
        Toast.makeText(this, provider+" enable", Toast.LENGTH_LONG).show();  
    }  
    @Override  
    public void onStatusChanged(String provider, int status, Bundle extras) {  
        // TODO Auto-generated method stub   
        Toast.makeText(this, status+" changed", Toast.LENGTH_SHORT).show();  
    }  
  

本篇文章来源于 Linux公社网站(www.)  原文链接:http://www./Linux/2011-07/39389.htm

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章