เท่าที่ผมรู้ การขอตำแหน่ง gps บน android มี 2 วิธีครับ
1. คือจาก Gps provider
2. คือ จาก Network provider
ตัวอย่างการขอ lat/long
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
เมื่อค้นหาได้จะเข้าฟังก์ชั่นนี้
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
LocationManager.NETWORK_PROVIDER สามารถแทนด้วย LocationManager.GPS_PROVIDER ทั้งหมดครับ นั่นคือ 2 แบบ ที่ผมพูดถึง
และตัว LocationManager จะมีฟังก์ชั่นนึงที่ชื่อ getLastKnownLocation ซึ่งผมว่าอันนี้แหละที่ทำให้การหา gps มันเร็ว ลองไปเทสดูนะครับ
อ่านเพิ่มเติมที่ http://developer.android.com/guide/topics/location/obtaining-user-location.html