很简单
package com.location.demo;
import android.content.Context;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
public class myLocation {
public LocationClient mLocationClient;
public BDLocationListener myListener = new MyLocationListener();
private double Latitude, Longitude, Radius;
Context context;
public myLocation(Context context) {因为Location类必须在主线程中声明,所以把主线程的context传进来
this.context = context;
mLocationClient = new LocationClient(this.context); // 声明LocationClient类
mLocationClient.registerLocationListener(myListener); // 注册监听函数
// 设置定位参数
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);// 设置定位模式
option.setCoorType("bd09ll");// 返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(5000);// 设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true);// 返回的定位结果包含地址信息
option.setNeedDeviceDirect(true);// 返回的定位结果包含手机机头的方向
mLocationClient.setLocOption(option);
}
class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// 接收返回值
Latitude = location.getLatitude();
Longitude = location.getLongitude();
Radius = location.getRadius();
}
}
public double getLatitude() {
return Latitude;
}
public double getLongitude() {
return Longitude;
}
public double getRadius() {
return Radius;
}
public void start() {
mLocationClient.start();
}
public void stop() {
mLocationClient.stop();
}
}