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();
}
}
分享到:
相关推荐
- 在开发环境中,可以通过编程语言(如Python、Java等)读取这些模拟数据,并将它们注入到应用程序的GPS接口中,模拟真实的GPS信号。 - 可以使用模拟器工具(如Android Studio的AVD Manager或Xcode的iOS模拟器)...
Android GPS日志记录程序是一种应用程序,它允许用户在Android设备上收集和记录GPS定位数据。这类程序通常用于追踪用户的位置信息,例如户外运动路径、驾驶路线或者地理数据收集。源码是开发者用来学习、理解或修改...
这份“Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了实现这两种定位方式的源代码示例,非常适合开发者进行学习和参考。 1. GPS定位: GPS定位是通过接收卫星信号来确定设备的经纬度...
标题中的“GPS.rar_GPS_GPS java_Java 8”暗示了这个压缩包可能包含与GPS定位相关的Java编程资源,特别是利用Java 8进行开发。这里,我们主要探讨以下几个知识点: 1. GPS定位系统: 全球定位系统(GPS)是一种基于...
Android系统是Google主导的开源移动操作系统,它允许开发者使用Java语言创建应用程序,运行在各种Android设备上。 该App的主要功能是解析接收到的蓝牙数据,从中提取出经纬度信息,然后利用Webview组件展示在地图上...
在Android平台上,开发一款名为"AndroidGPS"的应用程序,该应用旨在在WGS-84坐标参考系统(CRS)中展示设备的位置信息,并且能够显示实际位置的误差。WGS-84是一种全球广泛使用的地心地固坐标系统,主要用于全球定位...
GPS模块接收来自卫星的信号,计算出设备的经纬度、高度和速度等信息。同时,网络定位依赖于已知的无线接入点或基站位置,通过三角定位估算设备位置。 2. **Android SDK中的GPS API** 在Android SDK中,`...
在Android平台上,GPSLocator-android项目是一个基于Java编程语言的简单应用程序,它利用设备内置的全球定位系统(GPS)服务来获取用户的实时地理位置。GPS是全球卫星导航系统,通过接收至少四颗卫星的信号,计算出...
总的来说,基于Android的导航系统研究涵盖了移动应用开发、定位技术、地图服务和LBS等多个领域的知识,不仅要求开发者具备扎实的编程技能,还需要了解和运用地理信息系统(GIS)的相关理论。这样的项目有助于提升...
在网络定位中,可以通过经纬度信息查询百度地图API的反地理编码服务,获取到具体的位置信息,如街道、城市等。同时,如果设备支持GPS,还可以获取更精确的卫星定位数据。 在Android项目中,`AndroidManifest.xml`...
GPS是一种基于卫星导航的定位系统,通过接收至少四颗卫星的信号来计算设备的经纬度、高度、速度和时间等信息。在安卓设备上,Android系统提供了一个名为Location API的接口,使得开发者能够方便地访问这些定位数据。...
在本压缩包“android应用源码(精)GPS定位测速源码.zip”中,包含了一个专注于Android平台上的GPS定位及速度测量的应用程序的源代码。这个源代码库是为那些希望深入理解Android应用程序开发,特别是GPS定位和移动设备...
GPS是获取精确位置信息的主要方式,通过与多个卫星进行通信,计算出设备的经纬度坐标。在Android中,我们可以使用`LocationManager`服务和`LocationListener`接口来获取和监听位置更新。`LocationManager`负责请求...
这个压缩包文件“Android安卓基于经纬度切歌的冲绳音乐播放器源码.zip”包含了一个独特的Android应用程序的源代码,该应用专为冲绳地区的音乐爱好者设计。它利用GPS定位功能,根据用户所在地理位置的经纬度信息自动...
GPS是通过接收至少四颗卫星的信号来计算设备的经纬度、高度、速度和时间等信息。在Android平台上,我们可以利用LocationManager服务和LocationListener接口来实现这一功能。LocationManager用于请求定位服务,而...
这个资源包"两个GPS导航定位源码.zip"包含了一个安卓应用程序的源代码,主要用于GPS导航定位功能。在Android平台上开发此类应用,主要涉及到以下几个关键知识点: 1. **Android SDK**: Android软件开发工具包(SDK)...
总的来说,开发“GPS定位图Android应用程序”需要对Android系统、Java编程、Google Maps API以及GPS定位技术有深入理解。开发者需要掌握如何获取和处理位置数据,如何在地图上动态显示这些数据,以及如何构建用户...
总之,这个名为“GPS”的压缩包是一个实用的学习资源,它涵盖了Android平台上GPS定位的Java实现,对于想要深入理解GPS定位技术以及Java编程在移动设备上的应用的开发者来说,这是一个很好的实践案例。
这部分内容涵盖了Android平台上的多线程编程技巧,帮助开发者编写高效的应用程序。 - **线程基础:**介绍了Android中线程的概念和使用方法。 - **Handler机制:**讲解了如何使用Handler来实现在主线程和其他线程...