最近在做Android手机应用开发,还是很有意思的。其实如果只是做简单手机应用开发而不是手机游戏开发的话,还是很简单的。把主要的控件掌握了,就可以开发简单的应用了。
下面主要说一下在Android中使用GPS功能。
开发由于GPS功能时,常与Google Map相关,因此先推荐一篇讲解Google Map的文章:
http://mobiforge.com/developing/story/using-google-maps-android
该文章详细的讲解了Android中如何使用Google Map的各种功能。文章甚好,强烈推荐。
看完了如上文章后,我们就来讲解下如何使用GPS。
首先在AndroidManifest.xml中添加位置服务权限:
1 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然后再看如下代码例: 

1 LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
2 Location loc = locMan.getLastKnownLocation(LocationManager.GPS_PROVIDER);
3 if (loc != null) {
4     lat = loc.getLatitude();
5     Log.d(TAG, "latitude: " + lat);
6     lng = loc.getLongitude();
7     Log.d(TAG, "longitude: " + lng);
8 }

先注册LocationManager,然后就可以通过访问getLastKnownLocation得到当前的GPS坐标。是不是很简单。
既然是GPS,我们当然不只是想知道当前的位置,更重要的是要随着位置的移动,GPS信息也要更新。那么我们需要怎么做呢?
还先看如下代码例:

01 LocationListener locLis = new MyLocationListener();
02 locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10,
03                 locLis);
04 ...
05 ...
06 ...
07 public class MyLocationListener implements LocationListener {
08     @Override
09     public void onLocationChanged(Location loc) {
10         if (loc != null) {
11             p = new GeoPoint((int) (loc.getLatitude() * 1E6),
12                     (int) (loc.getLongitude() * 1E6));
13             mc.animateTo(p);
14             mc.setZoom(14);
15             mc.setCenter(p);
16         }
17     }
18   
19     @Override
20     public void onProviderDisabled(String provider) {
21     }
22   
23     @Override
24     public void onProviderEnabled(String provider) {
25     }
26   
27     @Override
28     public void onStatusChanged(String provider, int status, Bundle extras) {
29     }
30 }

声明自己的LocationListener后,调用requestLocationUpdates方法,就可以得到最新的GPS信息。
常用方法说明:
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
当时间超过minTime(单位:毫秒),或者位置移动超过minDistance(单位:米),就会调用listener中的方法更新GPS信息。
官方文档中有如下说明:
1. minTime的值最好是不小于60000(即:1分钟),这样会更加高效且节电。
2. 如果要尽可能实时的更新GPS信息,请将minTime和minDistance都设置成0。 

Android手机应用开发之手机GPS定位相关推荐

  1. Android百度地图开发(二)定位之自动定位及标注(及定位几日内瓦或坐标4.9E-324问题)

    接上篇Android百度地图开发(一)之Hello BaiduMap 1.环境配置: 新增权限如下 <!-- 这个权限用于进行网络定位--> <uses-permission and ...

  2. Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用

    转载请注明出处http://blog.csdn.net/xiaanming/article/details/11380619 这一篇文章主要讲解的是百度地图的定位功能,然后还有MyLocationOv ...

  3. python手机app开发_H5 手机 App 开发入门:技术篇

    新人学习手机 App 开发,一开始总要选择一条学习路径. 如果你熟悉 Java 语言,可以学习安卓开发:如果熟悉脚本语言(比如 Python 或 Ruby),可以学习 Swift 语言,进行 iOS ...

  4. A9G开发板上报GPS定位数据实现微信公众号定位显示

    文章目录 前言 一.准备工作 1.硬件准备 2.软件准备 3.微信公众号 三.AT指令 四.相关配置 五.订阅信息和上报数据到公众号 六.联系我们 前言 本文将介绍如何使用将A9G通过GPS定位得到的 ...

  5. 安卓10源码开发定制(21)GPS定位研究(1)LocationManager对象获取流程

    一.app中使用LocationManager获取gps定位信息 安卓app中使用如下代码获取当前设备的GPS定位信息,参考代码如下: public class MainActivity extend ...

  6. Android碎片知识(十).开发中的gps定位(转)

    一.LocationManager LocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager.我们可以通过如下代码创建LocationManger ...

  7. 手机站点开发及手机中图片加速显示img的Canvas方法

    随着手机开发越来越流行,手机开发的非常多框架也应运而生,比較好用的手机站点开发框架推荐例如以下: 1.zeptojs.里面封装了非常多手机特有方法,比如touch.js等等. 和jquery使用方法差 ...

  8. 离线地图开发下实现GPS定位,坐标纠偏回放,偏离路线

    一.GPS坐标转换(通过离线算法调用,各类坐标系之间的转换) GPS设备标准坐标采用WGS-84坐标系或北斗导航,需要通过坐标系之间转换才能准确定位到地图上,通过js接口算法函数可简单实现坐标系之间的 ...

  9. 手机网站开发及手机中图片加速显示img的Canvas方法

    随着手机开发越来越流行,手机开发的很多框架也应运而生,比较好用的手机网站开发框架推荐如下: 1.zeptojs,里面封装了很多手机特有方法,例如touch.js等等.和jquery用法差不多,很好上手 ...

  10. html手机游戏开发,Html5 手机游戏实例 拳皇

    [实例简介] Html5 + javascrip开发的实例游戏:拳皇游戏 算法独特,下载即可运行. [实例截图] [核心代码] StreetFighter-master └── StreetFight ...

最新文章

  1. av_read_frame 阻塞卡死解决办法
  2. Java中Arrays.toString ()打印二维数组及Array数组的常用操作
  3. 面试官:实现一个带值变更通知能力的Dictionary
  4. Android之android.graphics.drawable.Drawable.Callback回调接口
  5. 利用数据库来填充UltraWebTree
  6. Java8新特性总结 - 序
  7. SpringBoot系列(9):SpringBoot配置文件详解
  8. [sql面试经验] 经典sql面试题及答案第2期
  9. c语言开源库windows,几款国产开源的Windows界面库
  10. 大数据资料和开发工具
  11. I2C设备调试及波形分析
  12. Twitter + Elasticsearch 数据分析总结
  13. php的seeder是什么,轻松学Laravel6数据填充之方式一Seeder填充
  14. mac升级php后旧版本还在,老版本mac如何升级系统
  15. 什么是泊松分布?什么是泊松过程?
  16. C51单片机的压缩BCD码相加程序
  17. JSP+ssm计算机毕业设计居民小区安全巡检系统服务端设计65261【源码、数据库、LW、部署】
  18. 常用函数-生成各种类型随机数
  19. 高德离线地图WMS/WMTS服务
  20. 大数据+NCAA=?球迷情绪预测体育赛事结果

热门文章

  1. ZZULIOJ 1190: 按出生日期排序(结构体专题)
  2. 学习笔记96—WIN7/WIN8/WIN10 安装 MSDE SQL2000 卡住不动的解决办法
  3. 也来说是 AngularJS、 Angular 2、Angular 4 的区别
  4. 辛普森法 matlab,MATLAB辛普森法则
  5. 大数据:一张图让你明白什么是大数据
  6. 2017新型智慧城市建设的五“新”级策略
  7. 废物利用--旧手机搭建linux服务器
  8. 褚时健去世,柳传志发悼词:我非常钦佩褚老
  9. c语言绕过dnf检测,过掉DNF游戏保护,仅供学习研究。不得用于非法途径
  10. 如何处理J-Link不能连接目标MCU的问题?