最近在做Android手機應用開發,還是很有意思的。其實如果只是做簡單手機應用開發而不是手機遊戲開發的話,還是很簡單的。把主要的控制項掌握了,就可以開發簡單的應用了。
下面主要說一下在Android中使用GPS功能。
開發由於GPS功能時,常與Google Map相關,因此先推薦一篇講解Google Map的文章:
[url]http://mobiforge.com/developing/story/using-google-maps-android
[/url]
該文章詳細的講解了Android中如何使用Google Map的各種功能。文章甚好,強烈推薦。
看完了如上文章後,我們就來講解下如何使用GPS。
首先在AndroidManifest.xml中添加位置服務許可權:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然後再看如下代碼例:
LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location loc = locMan.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (loc != null) {
lat = loc.getLatitude();
Log.d(TAG, "latitude: " + lat);
lng = loc.getLongitude();
Log.d(TAG, "longitude: " + lng);
}
先註冊LocationManager,然後就可以通過訪問getLastKnownLocation得到當前的GPS座標。是不是很簡單。
人人
既然是GPS,我們當然不只是想知道當前的位置,更重要的是要隨著位置的移動,GPS資訊也要更新。那麼我們需要怎麼做呢?
還先看如下代碼例:
LocationListener locLis = new MyLocationListener();
locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10,
locLis);
...
...
...
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
if (loc != null) {
p = new GeoPoint((int) (loc.getLatitude() * 1E6),
(int) (loc.getLongitude() * 1E6));
mc.animateTo(p);
mc.setZoom(14);
mc.setCenter(p);
}
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
聲明自己的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。風之境地 java-javascript