Android手机应用开发之手机GPS定位

最近在做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" />
然后再看如下代码例: 

1LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
2Location loc = locMan.getLastKnownLocation(LocationManager.GPS_PROVIDER);
3if (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信息也要更新。那么我们需要怎么做呢?

还先看如下代码例:

01LocationListener locLis = new MyLocationListener();
02locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10,
03                locLis);
04...
05...
06...
07public 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。 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星火燎猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值