百度定位工具类
直接贴上代码:
package com.utils;
import android.content.Context;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
public class LocationUtils implements BDLocationListener {
/* 定位客户端. */
private LocationClient locClient = null;
private Context mContext;
/* 地址详细信息. */
private String latitude;
private String longitude;
private String city;
private String cityCode;
private String country;
private String addrStr;
public LocationUtils(Context context) {
this.mContext = context;
locClient = new LocationClient(mContext);
locClient.registerLocationListener(this);
/* 设置定位条件. */
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);
option.setIsNeedAddress(true);
option.setCoorType("bd0911");
option.setScanSpan(1000);
option.setPriority(LocationClientOption.NetWorkFirst);
locClient.setLocOption(option);
locClient.start();
}
@Override
public void onReceiveLocation(BDLocation location) {
if (location == null) {
return;
}
addrStr = location.getAddrStr();
latitude = String.valueOf(location.getLatitude());
longitude = String.valueOf(location.getLongitude());
city = location.getCity();
cityCode = location.getCityCode();
country = location.getCountry();
}
public String getAddrStr() {
return addrStr;
}
public LocationClient getLocClient() {
return locClient;
}
public String getLatitude() {
return latitude;
}
public String getLongitude() {
return longitude;
}
public String getCity() {
return city;
}
public String getCityCode() {
return cityCode;
}
public String getCountry() {
return country;
}
}
需要用到的权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_LOGS" />
在Application中:
@Override
public void onCreate() {
super.onCreate();
SDKInitializer.initialize(this);
}
基本山就可以了。