android gps原始数据格式,Android编程获取GPS数据的方法详解
本文实例讲述了Android编程获取GPS数据的方法。分享给大家供大家参考,具体如下:
GPS是Android系统中重要的组成部分,通过它可以衍生出众多的与位置相关的应用。
Android的GPS有一个专门的管理类,称为LocationManager,所有的GPS定位服务都由其对象产生并进行控制。
首先需要明确的是,LocationManager类的对象获取并不是直接创建的,而是由系统提供的,具体来说,通过如下方法,为一个LocationManager对象建立一个对象引用:
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
至此,我们可以用locationManager这个对象对任意有关GPS的功能进行操作了。下表列出了几个常用的成员方法:
方法及其签名
描述
List getAllProviders()
获取所有与设备关联的定位模块的列表
String getBestProvider(Criteria,boolean)
获取设定的标准(Criteria对象)中最适合的一个设备
GpsStatus getGpsStatus(GpsStatus)
获取GPS当前状态
Location getLastKnownLocation(String)
获取最近一次的可用地点信息
boolean isProviderEnabled(String)
判断参数所提及的设备是否可用
GPS还有一个支持API,即Location,它的作用是一个代表位置信息的抽象类,用它可以获取所有的位置数据:
方法及其签名
描述
double getAltitude()
获取当前高度
float getBearing()
获取当前方向
double getLatitude()
获取当前纬度
double getLongitude()
获取当前经度
float getSpeed()
获取当前速度
我们可以用以上的方法开始进行定位。
可以将地点信息传递给一个Location对象:
Locationlocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
我们还可以调用以下函数,对每次更新的位置信息进行我们想要的操作:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,10,new LocationListener())
其中,第一个参数是LocationProvider对象,第二个参数是刷新的时间差,这里设定为1秒,第三个参数是位置差,这里设定为10米,第四个参数为一个位置监听器对象,它必须实现4个方法:
①. public void onLocationChanged(Location location)
②. public void onProviderDisabled(String provider)
③. public void onProviderEnabled(String provider)
④. public void onStatusChanged(String provider,int status,Bundleextras)
可以重写这些方法来实现我们的需求。
当我们使用模拟器进行测试的时候,由于模拟器无法获取地理位置,所以必须用Emulator的位置控制器进行设置:
最终的结果如图所示:
代码如下所示:
package org.timm.android;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.EditText;
public class LocationTryActivity extends Activity {
EditText text;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
text = (EditText)findViewById(R.id.textShow);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
showLocation(location);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,new LocationListener(){
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
showLocation(location);
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
showLocation(null);
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
showLocation(locationManager.getLastKnownLocation(provider));
}
public void onStatusChanged(String provider,Bundle extras) {
// TODO Auto-generated method stub
}
});
}
public void showLocation(Location currentLocation){
if(currentLocation != null){
String s = "";
s += " Current Location: (";
s += currentLocation.getLongitude();
s += ",";
s += currentLocation.getLatitude();
s += ")\n Speed: ";
s += currentLocation.getSpeed();
s += "\n Direction: ";
s += currentLocation.getBearing();
text.setText(s);
}
else{
text.setText("");
}
}
}
最后一点需要说明的是,需要在AndroidManifest.xml中设置许可:
PS:关于AndroidManifest.xml详细内容可参考本站在线工具:
Android Manifest功能与权限描述大全:
希望本文所述对大家Android程序设计有所帮助。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
android gps原始数据格式,Android编程获取GPS数据的方法详解相关推荐
- android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】
本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...
- android自定义手势,Android编程实现自定义手势的方法详解
本文实例讲述了Android编程实现自定义手势的方法.分享给大家供大家参考,具体如下: 之前介绍过如何在Android程序中使用手势,主要是系统默认提供的几个手势,这次介绍一下如何自定义手势,以及如何 ...
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式
上一篇跟各位童鞋介绍了SharedPreference 和 File流如何存储数据,并且推荐使用FileOutputStream/FileInputStream来存储咱们游戏数据,那么这一篇则是像大家 ...
- android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】
本文实例讲述了Android通过json向MySQL中写入数据的方法.,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Jav ...
- android查询mysql并显示_Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解...
本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录 ...
- 安卓开发mysql数据库_Android编程之数据库的创建方法详解
本文实例讲述了Android编程之数据库的创建方法.分享给大家供大家参考,具体如下: 主java package com.itheima.createdatabase; import android. ...
- java 当前utc时间_Java获取UTC时间的方法详解
本文实例讲述了java获取utc时间的方法.分享给大家供大家参考,具体如下: 取得本地时间: java.util.calendar cal = java.util.calendar.getinstan ...
- java访问mongodb_Java中获取MongoDB连接的方法详解
首先是所需jar包,Maven中的配置如下: org.mongodb mongodb-driver 3.4.1 org.mongodb bson 3.4.1 org.springframework.d ...
- java 取对象的类_Java中通过Class类获取Class对象的方法详解
前言 本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 阅读API的Class类得知,Class 没有公共 ...
- 编程技巧│php 之魔术方法详解
✨ 目录
最新文章
- Django3.0 +Python3 连接mysql遇到django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer
- 前后端数据交互方法 汇总
- Windows Phone 8.1 Tiles, Notifications and Action Center
- 镗孔指令g76格式_钻孔、镗孔、攻丝,11个固定循环详解!
- 微服务实践分享(3)服务发现
- Employee Bonus --leetcode
- MOSS2007的网站和工作区
- qt geomery的单位是什么_斜管沉淀池的原理是什么?
- 从shiro源码角度学习工厂方法设计模式
- [转]被当做狗和鸡来驱赶的百姓
- vscode运行python文件_vscode怎么运行python文件
- 用好MySQL的21个好习惯!
- 利用计算机信息资源管理方式,第四章信息资源管理
- python图像化计算器
- 卧槽!出了一个Python实时目标跟踪系统神器!
- Unity漫反射 镜面反射
- HP3777打印机一行清晰一行不清晰
- 第一个RDD,几个数据探查命令
- Activity详情——Android8.0中Activity的启动流程
- linux下文件压缩、解压缩方法(tar)
热门文章
- Linux 初始化 init 系统(一)
- 很多人问中国网络安全行业怎么样?这篇文看完让你彻底了解中国网络安全行业的全景
- matlab画图函数汇总(二)
- matlab方程组函数画图,MATLAB学习1 之画图函数
- 计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告...
- 自动驾驶仿真(一)—— 基于CarSim与Simulink的ABS系统仿真
- 模拟集成电路大牛的经验
- linux中vim如何替换字符串,vim中替换字符串的方法有哪些
- 信息熵,交叉熵,KL散度,JS散度之间的关系
- Java使用百度翻译api