要获取精确的位置服务信息需要 GPS 硬件的支持。在应用程序开发阶段,由于模拟器中并没有真正的 GPS 硬件,因此不能获得真实的 GPS 信息。但是可以使用 Eclipse 视图模式的 DDMS 模式模拟 GPS 服务,在如图 1 所示的 Emulator Control 界面中手动发送经纬度信息来测试位置服务。

图 1  Emulator Control 界面

获取用户当前位置,需要实现以下 4 个基本步骤。

1)在 AndroidManifest.xml 文件中声明相应的权限。

使用 GPS_PROVIDER 定位服务需要以下权限:

使用 NETWORK_PROVIDER 定位服务需要以下权限:

2)获取 LocationManager 对象。

3)选择合适的 LocationProvider。

4)通过 LocationListener 接口获取位置信息。

实例 GPSLocationDemo 演示了使用 GPS 获取用户信息的过程,运行效果如图 2 所示。

图 2  实例 GPSLocationDemo 的运行效果

该运行效果所对应的布局文件 main.xml 内容如下:

该布局文件所使用的资源文件 strings.xml 内容如下:

GPSLocation使用 GPS 获取位置信息获取 GPS 信息

实例 GPSLocationDemo 中的主 Activity 文件 GPSLocationActivity.java 的代码如下:

package introduction.android.wifidirectdemo; 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.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class GPSLocationActivity extends Activity { /** * Called when the activity is first created. */ private Button btn_listen; private TextView tv_01, tv_02; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn_listen = (Button) findViewById(R.id.btn_listen); tv_01 = (TextView) findViewById(R.id.tv_01); tv_02 = (TextView) findViewById(R.id.tv_02); btn_listen.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { LocationManager locationManager = (LocationManager) GPSLocationActivity.this.getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new MyLocationListener()); } }); } class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub tv_01.setText("您当前位置的经度为" + location.getLongitude()); tv_02.setText("您当前位置的纬度为" + location.getLatitude()); } @Override public void onProviderDisabled(String provider) { //当provider被用户关闭时调用 Log.i("GpsLocation", "provider被关闭! "); } @Override public void onProviderEnabled(String provider) { //当provider被用户开启后调用 Log.i("GpsLocation", "provider被开启! "); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { //当provider的状态在OUT_OF_SERVICE、TEMPORARILY_UNAVAILABLE 和 AVAILABLE 之间发生变化时调用 Log.i("GpsLocation", "provider状态发生改变!"); } } }

由以上代码可见,借助于 Android SDK 提供的位置服务 API,仅仅几行代码就可以实现使用 GPS 定位的功能。

LocationListener 用于接收位置发生改变时的通知。当 Provider 提供的位置信息发生改变时,onLocationChanged() 方法会被调用。当不需要使用 LocationListener 进行位置更新时,可以通过 LocationManager.removeUpdates(locationListener) 方法将其移除。

android 汽车gps开发,Android GPS定位开发教程相关推荐

  1. android 汽车转向辅助线,Android开发 - 掌握ConstraintLayout(七)辅助线(Guideline)

    了解过UI设计的同学都知道,在设计的时候,我们经常在界面上拖进一些辅助线来帮我们对齐UI元素,或者方便我们统一的页边距. 在ConstraintLayout的编辑器中,同样也支持这样的功能,我们可以创 ...

  2. android功耗(23)---gps定位开发省电要点

    android手机gps定位开发省电要点 android手机使用GPS定位会非常费电.google工程师在quora上做了具体的解释,有兴趣可以看看 https://www.quora.com/Bat ...

  3. Android开发高德地图定位中GPS坐标转换

    这两天因为需要开始接触地图开发的内容,所以开始搜索有没有一些好的第三方地图,现在市面上大多数使用的都是百度地图,而谷歌地图因为一些原因,在国内无法提供服务,虽然百度地图的UI比较友好,定位更加准确,但 ...

  4. gps定位c语言开发,Android GPS定位开发教程

    要获取精确的位置服务信息需要 GPS 硬件的支持.在应用程序开发阶段,由于模拟器中并没有真正的 GPS 硬件,因此不能获得真实的 GPS 信息.但是可以使用 Eclipse 视图模式的 DDMS 模式 ...

  5. Android开发之位置定位详解与实例解析(GPS定位、Google网络定位,BaiduLBS(SDK)定位)...

    在android开发中地图和定位是很多软件不可或缺的内容,这些特色功能也给人们带来了很多方便.定位一般分为三种发方案:即GPS定位.Google网络定位以及基站定位 最简单的手机定位方式当然是通过GP ...

  6. Android开发之原生定位的方法(GPS,网络定位)

    话不多说,直接代码: 注意:此经纬度和第三方地图的经纬度不是一个经纬度 例如此经纬度longitude:116.426676  latitude:39.932821精确位置40.0海拔0.0 在原生G ...

  7. Android开发,GPS获取实时时间并转为北京时间,定位信息,海拔高度,并进行显示

    在转载的基础上增加一些内容,主要是时间的转换所以这里直接先把重点列出来: (GPS时间转为本地时间): @SuppressLint("SimpleDateFormat")priva ...

  8. android手机gps定位开发省电要点

    android手机使用GPS定位会非常费电.google工程师在quora上做了具体的解释,有兴趣可以看看 https://www.quora.com/Battery-Life/Why-does-GP ...

  9. android定位软件开发,android gps定位app源码(GpsTracker)

    [实例简介]做到了 gps 开启关闭后的提示 以及地理位置记录(经纬度) [实例截图] [核心代码] package android.gpstracker; import android.app.Ac ...

最新文章

  1. “主要的编程范型”及其语言特性关系(多图)
  2. 关于投资银行和咨询的理解和感悟
  3. Curve Modeling:车道线检测新工作(CVPR2022)
  4. cocos2dx2.2添加音乐音效以及设置音量
  5. stm32入门——定时器中断和中断优先级简介
  6. 每日学习 与 每日未知
  7. 华为 HarmonyOS 的野心比你想象中更大,android小游戏源代码
  8. CPU制作工艺中的14nm工艺
  9. 央视春晚歌手王琪,和戏歌双绝吴广全在长春芝华仕会盟
  10. Pytorch搭建常见分类网络模型------VGG、Googlenet、ResNet50 、MobileNetV2(4)
  11. 华为mate10可以用鸿蒙吗,可升级到鸿蒙2.0的四款华为手机,在用的恭喜了
  12. 批量安装操作系统(CentOS7 PXE安装)
  13. npm 下载的几种方式
  14. CentOS上Broadcom无线网卡驱动安装
  15. 基于Linux操作系统UMPC平台明年发布
  16. 这年头学计算机有用吗,现在学修电脑有前途吗?
  17. python爬财务数据_同花顺财经-财务数据爬取思路详解-python爬虫
  18. middles在python中什么意思_Python 基础知识入门(2)
  19. linux查看硬件资源命令
  20. unity游戏之北美市场调查独立开发者回归发行商模式

热门文章

  1. 产品经理有必要考个 PMP吗?(含PMP资料)
  2. 对实体完整性和参照完整性的认识
  3. 关于Vue使用ueditor富文本编辑器上传图片
  4. expect使用总结
  5. QT项目五:简易计算器
  6. HSQLDB基本认识
  7. Linux上连接sybase数据库
  8. c 语言filter过滤方法,R语言日常笔记(1)filter函数
  9. SDUT-1185 C语言实验——求一个3*3矩阵对角线元素之和
  10. tomcat9打开html网页出现乱码