`
maozilee
  • 浏览: 252065 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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();
	}

}
 

 

 

分享到:
评论

相关推荐

    模拟gps经纬度数据(带全国).rar

    - 在开发环境中,可以通过编程语言(如Python、Java等)读取这些模拟数据,并将它们注入到应用程序的GPS接口中,模拟真实的GPS信号。 - 可以使用模拟器工具(如Android Studio的AVD Manager或Xcode的iOS模拟器)...

    Android和Gps日志记录程序源码

    Android GPS日志记录程序是一种应用程序,它允许用户在Android设备上收集和记录GPS定位数据。这类程序通常用于追踪用户的位置信息,例如户外运动路径、驾驶路线或者地理数据收集。源码是开发者用来学习、理解或修改...

    Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip

    这份“Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了实现这两种定位方式的源代码示例,非常适合开发者进行学习和参考。 1. GPS定位: GPS定位是通过接收卫星信号来确定设备的经纬度...

    GPS.rar_GPS_GPS java_Java 8

    标题中的“GPS.rar_GPS_GPS java_Java 8”暗示了这个压缩包可能包含与GPS定位相关的Java编程资源,特别是利用Java 8进行开发。这里,我们主要探讨以下几个知识点: 1. GPS定位系统: 全球定位系统(GPS)是一种基于...

    基于stm32单片机的gps定位系统(app端源码)

    Android系统是Google主导的开源移动操作系统,它允许开发者使用Java语言创建应用程序,运行在各种Android设备上。 该App的主要功能是解析接收到的蓝牙数据,从中提取出经纬度信息,然后利用Webview组件展示在地图上...

    AndroidGPS:在WGS-84 CRS中显示位置的Android设备的应用程序。此外,此应用程序还会显示实际位置错误

    在Android平台上,开发一款名为"AndroidGPS"的应用程序,该应用旨在在WGS-84坐标参考系统(CRS)中展示设备的位置信息,并且能够显示实际位置的误差。WGS-84是一种全球广泛使用的地心地固坐标系统,主要用于全球定位...

    Android_GPS.rar_Android GPS定位_GPS_android_gps android_定位

    GPS模块接收来自卫星的信号,计算出设备的经纬度、高度和速度等信息。同时,网络定位依赖于已知的无线接入点或基站位置,通过三角定位估算设备位置。 2. **Android SDK中的GPS API** 在Android SDK中,`...

    GPSLocator-android:一个简单的 Android 应用程序,它使用 GPS 功能提供当前位置经纬度

    在Android平台上,GPSLocator-android项目是一个基于Java编程语言的简单应用程序,它利用设备内置的全球定位系统(GPS)服务来获取用户的实时地理位置。GPS是全球卫星导航系统,通过接收至少四颗卫星的信号,计算出...

    基于Android导航系统的研究--毕业论文.doc

    总的来说,基于Android的导航系统研究涵盖了移动应用开发、定位技术、地图服务和LBS等多个领域的知识,不仅要求开发者具备扎实的编程技能,还需要了解和运用地理信息系统(GIS)的相关理论。这样的项目有助于提升...

    通过百度地图,根据地名获取经纬度,内有详解

    在网络定位中,可以通过经纬度信息查询百度地图API的反地理编码服务,获取到具体的位置信息,如街道、城市等。同时,如果设备支持GPS,还可以获取更精确的卫星定位数据。 在Android项目中,`AndroidManifest.xml`...

    安卓GPS地图导航定位指南相关-Android高德地图gps定位.rar

    GPS是一种基于卫星导航的定位系统,通过接收至少四颗卫星的信号来计算设备的经纬度、高度、速度和时间等信息。在安卓设备上,Android系统提供了一个名为Location API的接口,使得开发者能够方便地访问这些定位数据。...

    android应用源码(精)GPS定位测速源码.zip

    在本压缩包“android应用源码(精)GPS定位测速源码.zip”中,包含了一个专注于Android平台上的GPS定位及速度测量的应用程序的源代码。这个源代码库是为那些希望深入理解Android应用程序开发,特别是GPS定位和移动设备...

    基于GPS定位的andriod编程在百度地图上标记当前位置

    GPS是获取精确位置信息的主要方式,通过与多个卫星进行通信,计算出设备的经纬度坐标。在Android中,我们可以使用`LocationManager`服务和`LocationListener`接口来获取和监听位置更新。`LocationManager`负责请求...

    Android安卓基于经纬度切歌的冲绳音乐播放器源码.zip

    这个压缩包文件“Android安卓基于经纬度切歌的冲绳音乐播放器源码.zip”包含了一个独特的Android应用程序的源代码,该应用专为冲绳地区的音乐爱好者设计。它利用GPS定位功能,根据用户所在地理位置的经纬度信息自动...

    Android应用源码之两个GPS导航定位源码.zip

    GPS是通过接收至少四颗卫星的信号来计算设备的经纬度、高度、速度和时间等信息。在Android平台上,我们可以利用LocationManager服务和LocationListener接口来实现这一功能。LocationManager用于请求定位服务,而...

    两个GPS导航定位源码.zip安卓程序源码资源下载

    这个资源包"两个GPS导航定位源码.zip"包含了一个安卓应用程序的源代码,主要用于GPS导航定位功能。在Android平台上开发此类应用,主要涉及到以下几个关键知识点: 1. **Android SDK**: Android软件开发工具包(SDK)...

    GPS定位图Android应用程序

    总的来说,开发“GPS定位图Android应用程序”需要对Android系统、Java编程、Google Maps API以及GPS定位技术有深入理解。开发者需要掌握如何获取和处理位置数据,如何在地图上动态显示这些数据,以及如何构建用户...

    GPS.rar_?GPS

    总之,这个名为“GPS”的压缩包是一个实用的学习资源,它涵盖了Android平台上GPS定位的Java实现,对于想要深入理解GPS定位技术以及Java编程在移动设备上的应用的开发者来说,这是一个很好的实践案例。

    Android in Practice(2011)[Android开发系列]

    这部分内容涵盖了Android平台上的多线程编程技巧,帮助开发者编写高效的应用程序。 - **线程基础:**介绍了Android中线程的概念和使用方法。 - **Handler机制:**讲解了如何使用Handler来实现在主线程和其他线程...

Global site tag (gtag.js) - Google Analytics