android gps 速度,Android 获取GPS速度
初始化:
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 位置
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
// TODO: Open GPS
} else {
String bestProvider = locationManager.getBestProvider(
getLocationCriteria(), true);
// 获取位置信息
// 如果不设置查询要求,getLastKnownLocation方法传人的参数为LocationManager.GPS_PROVIDER
Location location = locationManager
.getLastKnownLocation(bestProvider);
// 监听状态
locationManager.addGpsStatusListener(gpsStatusListener);
// 绑定监听,有4个参数
// 参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种
// 参数2,位置信息更新周期,单位毫秒
// 参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息
// 参数4,监听
// 备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新
// 1秒更新一次,或最小位移变化超过1米更新一次;
// 注意:此处更新准确度非常低,推荐在service里面启动一个Thread,在run中sleep(10000);然后执行handler.sendMessage(),更新位置
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 1000, 1, locationListener);
}
onDestroy时remove监听:
@Override
protected void onDestroy() {
if (locationManager != null) {
locationManager.removeGpsStatusListener(gpsStatusListener);
}
super.onDestroy();
}
位置监听:
// 位置监听
private LocationListener locationListener = new LocationListener() {
/**
* 位置信息变化时触发
*/
public void onLocationChanged(Location location) {
// location.getAltitude(); -- 海拔
updateSpeedByLocation(location);
}
/**
* GPS状态变化时触发
*/
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.AVAILABLE: // GPS状态为可见时
MyLog.i("GPS", "当前GPS状态为可见状态");
break;
case LocationProvider.OUT_OF_SERVICE: // GPS状态为服务区外时
MyLog.i("GPS", "当前GPS状态为服务区外状态");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE: // GPS状态为暂停服务时
MyLog.i("GPS", "当前GPS状态为暂停服务状态");
break;
}
}
/**
* GPS开启时触发
*/
public void onProviderEnabled(String provider) {
Location location = locationManager.getLastKnownLocation(provider);
updateSpeedByLocation(location);
}
/**
* GPS禁用时触发
*/
public void onProviderDisabled(String provider) {
// updateView(null);
}
};
获取查询条件:
/**
* 返回查询条件
*
* @return
*/
private Criteria getLocationCriteria() {
Criteria criteria = new Criteria();
// 设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setSpeedRequired(true); // 设置是否要求速度
criteria.setCostAllowed(false); // 设置是否允许运营商收费
criteria.setBearingRequired(false); // 设置是否需要方位信息
criteria.setAltitudeRequired(false); // 设置是否需要海拔信息
criteria.setPowerRequirement(Criteria.POWER_LOW); // 设置对电源的需求
return criteria;
}
GPS状态监听
// 状态监听
GpsStatus.Listener gpsStatusListener = new GpsStatus.Listener() {
public void onGpsStatusChanged(int event) {
switch (event) {
case GpsStatus.GPS_EVENT_FIRST_FIX: // 第一次定位
MyLog.i("GPS", "GPS_EVENT_FIRST_FIX");
break;
case GpsStatus.GPS_EVENT_SATELLITE_STATUS: // 卫星状态改变
GpsStatus gpsStatus = locationManager.getGpsStatus(null); // 获取当前状态
int maxSatellites = gpsStatus.getMaxSatellites(); // 获取卫星颗数的默认最大值
Iteratoriters = gpsStatus.getSatellites()
.iterator(); // 创建一个迭代器保存所有卫星
int count = 0;
while (iters.hasNext() && count <= maxSatellites) {
GpsSatellite s = iters.next();
count++;
}
MyLog.i("GPS", "Satellite Number:" + count);
break;
case GpsStatus.GPS_EVENT_STARTED: // 定位启动
MyLog.i("GPS", "GPS_EVENT_STARTED");
break;
case GpsStatus.GPS_EVENT_STOPPED: // 定位结束
MyLog.i("GPS", "GPS_EVENT_STOPPED");
break;
}
};
};
根据Location获取速度
private void updateSpeedByLocation(Location location) {
int tempSpeed = (int) (location.getSpeed() * 3.6); // m/s --> Km/h
adasSpeed = tempSpeed;
recordSpeed = tempSpeed;
nowLatitude = location.getLatitude();
nowLongitude = location.getLongitude();
MyLog.i("GPS", "Speed:" + tempSpeed);
if (recorderFront != null) {
if (recordSpeed > 0) {
recorderFront.setSpeed(recordSpeed);
recordSpeed = 0; // 清除速度
}
recorderFront.setLat(new DecimalFormat("#.00000")
.format(nowLatitude) + "");
recorderFront.setLong(new DecimalFormat("#.00000")
.format(nowLongitude) + "");
}
}
android gps 速度,Android 获取GPS速度相关推荐
- java编程手机gps定位_GPS 获取Gps定位信息的Android源码实例,通过这个JAVA 目,你可能学会GPS在 手机 238万源代码下载- www.pudn.com...
文件名称: GPS下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 59 KB 上传时间: 2013-04-08 下载次数: 22 详细说明:获取Gps定位信息的A ...
- 获取手机Gps地理位置并获取Gps信号强弱
在项目终需要开启gps用来获取地理位置,获取不到地理位置时发送一条广播,进行通知 1,启动服务,在服务中每隔3秒检测gps是否开启以及获取到当前的地理位置 2,将获取到的地理位置发送一条全局广播,便于 ...
- php exif gps,php exif_read_data() 获取GPS
exif_read_data() 函数的作用是从 JPEG 或 TIFF 图像文件中读取 EXIF 头信息 PHP 7.2.10 版本 华为手机获取不到GPS,降版本到 7.1.28 或者 7.1. ...
- android网络获取经纬,Android中透过GPS或NetWork获取当前位置的经纬度
Android中通过GPS或NetWork获取当前位置的经纬度 private double latitude=0.0; private double longitude =0.0; Location ...
- android 获取GPS定位,
/** * 得到位置信息 */ private void getLocation() { // 获取位置管理服务 LocationManager locationManager; String ser ...
- Matlab Mobile手机版获取gps数据和加速度信号融合
Matlab Mobile手机版获取gps数据和加速度信号融合 前言 安装matlab mobile Matlab Drive Connector 安装 Matlab Mobile 记录数据 Matl ...
- Android 打开 GPS 导航并获取位置信息
原文地址为: Android 打开 GPS 导航并获取位置信息 最近在做一个 Android 项目,需要用到GPS获取位置信息,从 API 查了一下,发现获取位置信息仅需极其简单的一句即可: getL ...
- xamarin android gps,如何使用Xamarin在Android中同步获取GPS位置更新?
具体来说,我正在使用Xamarin.Forms进行C#开发,但是在本机Android方面工作,编写了GPS包装类,该类可以通过依赖注入在Xamarin.Forms方面使用.在大多数情况下,关于Andr ...
- Android获取GPS网络定位经纬度信息
定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位 GPS定位 GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准 ...
- android获取拍摄视频的gps,关于gps:Android获取当前位置的最佳方式
本问题已经有最佳答案,请猛点这里访问. 在以下场景中获取android当前位置的最佳方法是什么, 如果GPS不可用,请从网络提供商处获取位置 如果GPS可用并且可以获得当前位置,请从GPS提供商处获取 ...
最新文章
- c语言语系的命名风格和java系命名风格
- ubuntu18.04下安装Anaconda及numpy、matplotlib
- Java 并发之线程池学习
- Gradle学习之闭包
- java 扫雷 实验报告_java实现简单扫雷
- 中兴代工移动光猫GM620开启telnet
- 在阿里云注册域名后如何网站备案
- 完整图书馆管理系统(包含设计思路、图形界面、后台数据库)
- 中国神话故事中的仙佛怪关系整理
- 扒一扒能加速互联网的QUIC协议
- 【BFS】lydsy3161 孤舟蓑笠翁
- STM32F407三重ADC配置
- 什么是后端渲染?什么是前端渲染?后端渲染和前端渲染又有什么区别呢?
- uplload 通关纪实 pass1
- 文档编辑之markdown语法(typora)
- 【导数术】8.三角函数
- 电子杂志设计制作手册
- 手机出现这4种问题,才是换手机的最佳时期,别被谣言给骗了
- Linux free -m 详解命令
- if函数三个条件怎么填c语言,if同时满足三个条件怎么写