Android Location

import static android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS;  
import android.app.Activity;  
import android.content.Context;  
import android.content.Intent;  
import android.location.Location;  
import android.location.LocationListener;  
import android.location.LocationManager;  
import android.os.Bundle;  
  
public class LocationUtil {  
  
    public static boolean isEnabled(Context context) {  
        LocationManager mLocationManager = (LocationManager) context  
                .getSystemService(Context.LOCATION_SERVICE);  
        if (mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {  
            return true;  
        }  
        if (mLocationManager  
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {  
            return true;  
        }  
        return false;  
    }  
  
    public static void startLocationService(Context context) {  
        LocationManager mLocationManager = (LocationManager) context  
                .getSystemService(Context.LOCATION_SERVICE);  
        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,  
                1000L, 10, mLocationListener);  
        mLocationManager.requestLocationUpdates(  
                LocationManager.NETWORK_PROVIDER, 1000L, 10,  
                mLocationListener);  
    }  
  
    public static void stopLocationService(Context context) {  
        LocationManager mLocationManager = (LocationManager) context  
                .getSystemService(Context.LOCATION_SERVICE);  
        mLocationManager.removeUpdates(mLocationListener);  
    }  
  
    public static Location getLocationByGPS(Context context) {  
        LocationManager mLocationManager = (LocationManager) context  
                .getSystemService(Context.LOCATION_SERVICE);  
        Location location = mLocationManager  
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);  
        return location;  
    }  
  
    public static Location getLocationByNetwork(Context context) {  
        LocationManager mLocationManager = (LocationManager) context  
                .getSystemService(Context.LOCATION_SERVICE);  
        Location location = mLocationManager  
                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);  
        return location;  
    }  
  
    public static void openLocationSetting(Activity act, int requestCode) {  
        act.startActivityForResult(new Intent(ACTION_LOCATION_SOURCE_SETTINGS),  
                requestCode);  
    }  
  
    private static final LocationListener mLocationListener = new LocationListener() {  
  
        public void onLocationChanged(Location location) {  
            // 當座標改變時觸發此函數,如果Provider傳進相同的座標,它就不會被觸發   
            System.out.println("onLocationChanged:" + location.getLatitude());  
        }  
  
        public void onProviderDisabled(String provider) {  
            // Provider被disable時觸發此函數,比如GPS被關閉   
            System.out.println("onProviderDisabled:" + provider);  
        }  
  
        public void onProviderEnabled(String provider) {  
            // Provider被enable時觸發此函數,比如GPS被打開   
            System.out.println("onProviderEnabled:" + provider);  
        }  
  
        public void onStatusChanged(String provider, int status, Bundle extras) {  
            // Provider的轉態在可用、暫時不可用和無服務三個狀態直接切換時觸發此函數   
            System.out.println("onStatusChanged:" + status);  
        }  
    };  
}  


 

需要增加權限:

<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission 
android:name="android.permission.ACCESS_COARSE_LOCATION" />

 

---------------------------------------------------------------------------

GL(arui319)

http://blog.csdn.net/arui319

<本文可以轉載,但是請保留以上作者信息。謝謝。>

---------------------------------------------------------------------------

 

/****************************************************  華麗分割  *****************************************/

獲取到location後能得到經緯度了,也能解析地址了

private List<Address> getAddressbyGeoPoint(Location location) {
		List<Address> result = null;
		try {
			if (location != null) {
				Geocoder geocoder = new Geocoder(this, Locale.getDefault());
				result = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}


 

發佈了28 篇原創文章 · 獲贊 6 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章