GPS的开发、使用,有两个关键点:
1. 选择并激活合适的Provider;
2. 建立合理刷新机制。
下面是通用的方法,以“选择并激活合适的Provider”:
protected void getAndTraceLocation(){
//geocoder = new Geocoder(this, Locale.getDefault());;
geocoder = new Geocoder(this, Locale.ENGLISH);;
// Acquire a reference to the system Location Manager
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
if(provider!=null){
Log.i(TAG, "GPS provider is enabled:" + provider.toString());
// Get the location
latestLocation = locationManager.getLastKnownLocation(provider);
updateWithNewLocation(latestLocation);
// Register the listener with the Location Manager to receive location
locationManager.requestLocationUpdates(provider, 1000, 5, locationListener);
}else{
Log.i(TAG, "No GPS provider found!");
updateWithNewLocation(null);
}
}
protected final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
Log.i(TAG, "location changed to: " + location);
updateWithNewLocation(location);
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
需要注意的是:
这里的locationManager.getBestProvider(criteria, true) 之后,必须进行是否为null的判断,否则在终端禁用GPS和网络以后会出现NPE异常。
注意这里回调了一个通用的updateWithNewLocation(latestLocation)方法,用户只要实现这个方法,即可实现第二个关键点,即“建立合理刷新机制”。
下面是最简单的例子:
@Override
protected void updateWithNewLocation(Location location) {
super.updateWithNewLocation(location);
String location_msg = context.getString(R.string.msg_no_gps);
if (location != null) {
location_msg = location.getLatitude() + "," + location.getLongitude();
Log.i(TAG, location_msg);
} else {
Log.i(TAG, location_msg);
}
location_msg = String.format(_location_msg, location_msg);
_location.setText(location_msg);
}
完毕!
分享到:
相关推荐
然而,有些开发者可能需要在没有用户交互的情况下强制开启GPS,这涉及到对Android API的深入理解和使用。以下是对这个主题的详细阐述: 首先,Android提供了LocationManager服务,它允许应用请求位置更新并管理不同...
综上所述,"android_hardware_gps GPS驱动"是一个针对全志平台、兼容Android 10系统的GPS硬件接口层实现,它包含了地面波动数据处理功能,确保了在复杂环境下的定位精度和稳定性。理解这些知识点对于开发和维护...
在本文中,我们将深入探讨如何正确使用Android的GPS功能来获取地理位置,以及避免一些常见问题。 首先,避免使用`getLastKnownLocation`方法来直接获取当前位置。这个方法可能会返回null,因为它既用于获取当前地理...
在Android中,GPS HAL负责与硬件交互,获取GPS数据,并将其转化为上层应用可以理解和使用的格式。 Ublox是知名的GPS模块制造商,其产品广泛应用于各种移动设备。Android针对Ublox GPS模块的驱动通常包括以下几个...
在Android平台上,GPS(全球定位系统)定位是开发者常用的功能之一,用于获取设备的精确位置信息。本资源提供了Android GPS定位的实例源码,对于学习和理解如何在Android应用中集成GPS定位至关重要。通过分析这些...
本文将深入探讨如何在Android模拟器上使用GPS定位,并获取经纬度坐标数据。 首先,我们要明白Android模拟器如何模拟GPS定位。在Android Studio中,我们可以使用AVD(Android Virtual Device)管理器创建和管理...
在Android平台上,GPS(全球定位系统)是移动设备获取地理位置信息的重要途径。本文将深入探讨“Android-Gps-Test.rar”这个压缩包所涉及的GPS纬度、Android GPS测试以及如何利用Androits GPS测试应用来评估GPS性能...
在Android系统中,GPS(全球定位系统)是实现位置服务的关键组件。为了深入了解GPS Android底层驱动的工作原理,我们需要探讨以下几个核心知识点:JNI(Java Native Interface)、HAL(硬件抽象层)以及Java层与底层...
在Android平台上,GPS(全球定位系统)是移动设备获取地理位置信息的重要途径。GPS技术通过接收来自卫星的信号来计算设备的精确位置。然而,由于多种因素,如信号干扰、多路径效应,GPS信号可能会出现不准确或跳变的...
总结来说,《Android_Gps.pdf》可能会涵盖以上这些主题,帮助开发者理解如何在Android平台上高效、准确地集成和使用GPS功能。无论你是GPS应用的初学者还是有经验的开发者,这份文档都将是一份宝贵的参考资料。
使用GPS 定位,首先,需要在清单文件(AndroidManifest.xml)中注册获取定位的权限: <!-- GPS定位必须的权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> **1.获取位置...
Android系统要求应用在使用GPS或其他位置源之前必须获取相应的权限。在`<manifest>`标签内添加以下代码: ``` <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` `ACCESS_FINE_...
在Android开发中,获取GPS定位数据是常见的需求,主要用于实现地图导航、位置服务等功能。本文将详细介绍如何通过源代码在Android设备上获取GPS定位信息,并将其存储到SQLite本地数据库中。 首先,Android系统提供...
在Android系统中,GPS(全球定位系统)是设备获取地理位置信息的重要途径。然而,由于多种因素,如环境遮挡、天气状况或者硬件性能,手机可能会遇到GPS信号接收困难或者信号弱的问题。本篇将深入探讨如何解决这些...
在Android平台上,获取GPS(全球定位系统)数据是开发者经常需要处理的任务,特别是在开发地图应用、导航系统或者位置服务相关的应用程序时。这个“Android读取GPS数据demo”提供了一个简单的示例,帮助开发者理解...
在Android中,我们通常使用`LocationManager`服务来请求GPS定位。源码中可能会包含以下关键组件: - `LocationManager`: 获取和管理定位服务,注册监听器以接收定位更新。 - `LocationListener`: 实现此接口,用于...
以上就是使用Android Studio开发GPS定位示例的基本步骤。这个"LocationDemo"项目为你提供了一个实际操作的起点,你可以在此基础上根据具体需求进行扩展,例如添加地图显示、实现室内定位、优化定位精度等。在实践中...
Android GPS 架构中的 GPS 开启与关闭是指在 Android 系统中如何启动和关闭 GPS 设备的过程。本文将详细介绍 GPS 的开启与关闭的代码实现、系统启动过程、数据库写入过程等相关知识点。 一、GPS 的开启 在 Android...
本篇文章将详细讲解如何在Android中使用GPS接口来获取地理位置信息。 首先,我们需要了解Android的位置API。在Android 6.0(API级别23)之前,主要使用`LocationManager`类来获取GPS数据。从Android 6.0开始,引入...
标题与描述均聚焦于“TI GPS在Android 4.2中的架构”,这表明文档将深入探讨Texas Instruments(TI)GPS技术在特定版本的Android操作系统——即Android 4.2(代号为Jelly Bean)——中的实现细节。下面,我们将根据...