Android手机应用开发之手机GPS定位
2012-09-12 16:57
671 查看
最近在做Android手机应用开发,还是很有意思的。其实如果只是做简单手机应用开发而不是手机游戏开发的话,还是很简单的。把主要的控件掌握了,就可以开发简单的应用了。
下面主要说一下在Android中使用GPS功能。
开发由于GPS功能时,常与GoogleMap相关,因此先推荐一篇讲解GoogleMap的文章:http://mobiforge.com/developing/story/using-google-maps-android
该文章详细的讲解了Android中如何使用GoogleMap的各种功能。文章甚好,强烈推荐。
看完了如上文章后,我们就来讲解下如何使用GPS。
首先在AndroidManifest.xml中添加位置服务权限:
然后再看如下代码例:
先注册LocationManager,然后就可以通过访问getLastKnownLocation得到当前的GPS坐标。是不是很简单。
既然是GPS,我们当然不只是想知道当前的位置,更重要的是要随着位置的移动,GPS信息也要更新。那么我们需要怎么做呢?
还先看如下代码例:
声明自己的LocationListener后,调用requestLocationUpdates方法,就可以得到最新的GPS信息。
常用方法说明:
publicvoidrequestLocationUpdates(Stringprovider,longminTime,floatminDistance,LocationListenerlistener)
当时间超过minTime(单位:毫秒),或者位置移动超过minDistance(单位:米),就会调用listener中的方法更新GPS信息。
官方文档中有如下说明:
1.minTime的值最好是不小于60000(即:1分钟),这样会更加高效且节电。
2.如果要尽可能实时的更新GPS信息,请将minTime和minDistance都设置成0。
下面主要说一下在Android中使用GPS功能。
开发由于GPS功能时,常与GoogleMap相关,因此先推荐一篇讲解GoogleMap的文章:
该文章详细的讲解了Android中如何使用GoogleMap的各种功能。文章甚好,强烈推荐。
看完了如上文章后,我们就来讲解下如何使用GPS。
首先在AndroidManifest.xml中添加位置服务权限:
1 | < uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION" /> |
1 | LocationManagerlocMan=(LocationManager)getSystemService(Context.LOCATION_SERVICE); |
2 | Locationloc=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 | } |
既然是GPS,我们当然不只是想知道当前的位置,更重要的是要随着位置的移动,GPS信息也要更新。那么我们需要怎么做呢?
还先看如下代码例:
01 | LocationListenerlocLis= 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(Locationloc){ |
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(Stringprovider){ |
21 | } |
22 |
23 | @Override |
24 | public void onProviderEnabled(Stringprovider){ |
25 | } |
26 |
27 | @Override |
28 | public void onStatusChanged(Stringprovider, int status,Bundleextras){ |
29 | } |
30 | } |
常用方法说明:
publicvoidrequestLocationUpdates(Stringprovider,longminTime,floatminDistance,LocationListenerlistener)
当时间超过minTime(单位:毫秒),或者位置移动超过minDistance(单位:米),就会调用listener中的方法更新GPS信息。
官方文档中有如下说明:
1.minTime的值最好是不小于60000(即:1分钟),这样会更加高效且节电。
2.如果要尽可能实时的更新GPS信息,请将minTime和minDistance都设置成0。
相关文章推荐
- Android实现定位---GPS应用开发
- android手机gps定位开发省电要点
- AppCan:如何在Android手机上开发出Android应用
- 【Android架构GPS篇】之GPS定位应用层流程
- Android应用开发实战GPS与加速度传感器
- android开发之GPS定位详解
- macOS 下android开发之 应用Android Screen Monitor共享手机屏幕,android应用屏幕演示
- Android and HTML5 开发手机应用(转载)
- Android应用开发之(Location in Android-定位)
- 索爱针对Android平台推出WebSDK, 主要是为其Android手机开发应用。
- android开发之GPS定位详解
- 开发手机Android应用心得
- Google手机操作系统Android应用开发入门
- Android开发googleMap+GPS定位中的关于Criteria一知半解问题
- Android开发把项目打包成apk,安卓到手机上,或者提交到app应用商店
- android手机应用开发平民调查
- Linux应用随笔(五)64位Debian8兼容运行32位adb开发android应用,并解决手机驱动问题
- android开发之GPS定位详解
- android 手机GPS 定位实践实记
- 3G手机Android应用开发视频教程_黎活明老师的视频(第一天课程)总共有八天课程