首页 > 其他分享 >Android手机应用开发之手机GPS定位

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

时间:2022-12-11 18:04:15浏览次数:67  
标签:loc minTime void LocationManager 手机 Android public 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" />

然后再看如下代码例:  


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。  


标签:loc,minTime,void,LocationManager,手机,Android,public,GPS
From: https://blog.51cto.com/u_11295556/5928485

相关文章