本文实例讲述了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数据的方法详解相关推荐

  1. android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...

  2. android自定义手势,Android编程实现自定义手势的方法详解

    本文实例讲述了Android编程实现自定义手势的方法.分享给大家供大家参考,具体如下: 之前介绍过如何在Android程序中使用手势,主要是系统默认提供的几个手势,这次介绍一下如何自定义手势,以及如何 ...

  3. 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式

    上一篇跟各位童鞋介绍了SharedPreference 和 File流如何存储数据,并且推荐使用FileOutputStream/FileInputStream来存储咱们游戏数据,那么这一篇则是像大家 ...

  4. android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Jav ...

  5. android查询mysql并显示_Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解...

    本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录 ...

  6. 安卓开发mysql数据库_Android编程之数据库的创建方法详解

    本文实例讲述了Android编程之数据库的创建方法.分享给大家供大家参考,具体如下: 主java package com.itheima.createdatabase; import android. ...

  7. java 当前utc时间_Java获取UTC时间的方法详解

    本文实例讲述了java获取utc时间的方法.分享给大家供大家参考,具体如下: 取得本地时间: java.util.calendar cal = java.util.calendar.getinstan ...

  8. java访问mongodb_Java中获取MongoDB连接的方法详解

    首先是所需jar包,Maven中的配置如下: org.mongodb mongodb-driver 3.4.1 org.mongodb bson 3.4.1 org.springframework.d ...

  9. java 取对象的类_Java中通过Class类获取Class对象的方法详解

    前言 本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 阅读API的Class类得知,Class 没有公共 ...

  10. 编程技巧│php 之魔术方法详解

    ✨ 目录

最新文章

  1. Django3.0 +Python3 连接mysql遇到django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer
  2. 前后端数据交互方法 汇总
  3. Windows Phone 8.1 Tiles, Notifications and Action Center
  4. 镗孔指令g76格式_钻孔、镗孔、攻丝,11个固定循环详解!
  5. 微服务实践分享(3)服务发现
  6. Employee Bonus --leetcode
  7. MOSS2007的网站和工作区
  8. qt geomery的单位是什么_斜管沉淀池的原理是什么?
  9. 从shiro源码角度学习工厂方法设计模式
  10. [转]被当做狗和鸡来驱赶的百姓
  11. vscode运行python文件_vscode怎么运行python文件
  12. 用好MySQL的21个好习惯!
  13. 利用计算机信息资源管理方式,第四章信息资源管理
  14. python图像化计算器
  15. 卧槽!出了一个Python实时目标跟踪系统神器!
  16. Unity漫反射 镜面反射
  17. HP3777打印机一行清晰一行不清晰
  18. 第一个RDD,几个数据探查命令
  19. Activity详情——Android8.0中Activity的启动流程
  20. linux下文件压缩、解压缩方法(tar)

热门文章

  1. Linux 初始化 init 系统(一)
  2. 很多人问中国网络安全行业怎么样?这篇文看完让你彻底了解中国网络安全行业的全景
  3. matlab画图函数汇总(二)
  4. matlab方程组函数画图,MATLAB学习1 之画图函数
  5. 计算机操作系统---高响应比调度算法,操作系统最高响应比优先调度算法实验报告...
  6. 自动驾驶仿真(一)—— 基于CarSim与Simulink的ABS系统仿真
  7. 模拟集成电路大牛的经验
  8. linux中vim如何替换字符串,vim中替换字符串的方法有哪些
  9. 信息熵,交叉熵,KL散度,JS散度之间的关系
  10. Java使用百度翻译api