package com.az.Location;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
public class AGps{
private Location location = null;
private LocationManager locationManager = null;
private Context context = null;
/**
* ��ʼ��
*
* @param ctx
*/
public AGps(Context ctx) {
context=ctx;
Log.i("cathon", "initgps ");
locationManager=(LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
Log.i("cathon", "initgps 2 ");
//location = locationManager.getLastKnownLocation(getProvider()); //cathon xiong
Log.i("cathon", "initgps 3 ");
//locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);
Log.i("cathon", "initgps end ");
}
// ��ȡLocation Provider
private String getProvider() {
// ����λ�ò�ѯ����
Criteria criteria = new Criteria();
// ��ѯ���ȣ���
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// �Ƿ��ѯ��������
criteria.setAltitudeRequired(false);
// �Ƿ��ѯ��λ�� : ��
criteria.setBearingRequired(false);
// �Ƿ������ѣ���
criteria.setCostAllowed(true);
// ����Ҫ��
criteria.setPowerRequirement(Criteria.POWER_LOW);
// ��������ʵķ���������provider����2������Ϊtrue˵�� , ���ֻ��һ��provider����Ч��,�ص�ǰprovider
return locationManager.getBestProvider(criteria, true);
}
private LocationListener locationListener = new LocationListener() {
// λ�÷����ı�����
public void onLocationChanged(Location l) {
if(l!=null){
location=l;
}
}
// provider ���û��رպ����
public void onProviderDisabled(String provider) {
location=null;
}
// provider ���û����������
public void onProviderEnabled(String provider) {
Location l = locationManager.getLastKnownLocation(provider);
if(l!=null){
location=l;
}
}
// provider ״̬�仯ʱ����
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
public Location getLocation(){
return location;
}
public void closeLocation(){
if(locationManager!=null){
if(locationListener!=null){
locationManager.removeUpdates(locationListener);
locationListener=null;
}
locationManager=null;
}
}
}