不是什么难度大的问题,就是遇到一些正常操作之后,代码不好使的问题,所以想要记录下来
问题一
jar包一定要全,无论是什么CPU的so文件包,都要包含在里边
![这里写图片描述](https://img-blog.csdn.net/20170724135345375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU3MDAyMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
问题二
详细比对下 你的KEY值,确认不是别人的KEY值,顺便确认下你的定位service是否声明
![这里写图片描述](https://img-blog.csdn.net/20170724135630651?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTU3MDAyMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
问题三
接下来就是百度的代码了,官网上都有,这里就不在赘述了,但一定要记得销毁的时候,关闭service啊,记得调用requestLocation()去定位即可
import android.app.Application;
import android.content.Context;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
/**
* @author baidu
*/
public class LocationService {
private LocationClient client = null;
private LocationClientOption mOption, DIYoption;
private Object objLock = new Object();
/***
*
* @param locationContext
*/
public LocationService(Application locationContext) {
synchronized (objLock) {
if (client == null) {
client = new LocationClient(locationContext);
client.setLocOption(getDefaultLocationClientOption());
}
}
}
/***
*
* @param listener
* @return
*/
public boolean registerListener(BDLocationListener listener) {
boolean isSuccess = false;
if (listener != null) {
client.registerLocationListener(listener);
isSuccess = true;
}
return isSuccess;
}
public void unregisterListener(BDLocationListener listener) {
if (listener != null) {
client.unRegisterLocationListener(listener);
}
}
/***
*
* @param option
* @return isSuccessSetOption
*/
public boolean setLocationOption(LocationClientOption option) {
boolean isSuccess = false;
if (option != null) {
if (client.isStarted())
client.stop();
DIYoption = option;
client.setLocOption(option);
}
return isSuccess;
}
public LocationClientOption getOption() {
return DIYoption;
}
/***
*
* @return DefaultLocationClientOption
*/
public LocationClientOption getDefaultLocationClientOption() {
if (mOption == null) {
mOption = new LocationClientOption();
mOption.setCoorType("bd09ll");
mOption.setScanSpan(15 * 60 * 1000);
}
return mOption;
}
public void start() {
synchronized (objLock) {
if (client != null && !client.isStarted()) {
client.start();
}
}
}
public void stop() {
synchronized (objLock) {
if (client != null && client.isStarted()) {
client.stop();
}
}
}
public void requestLocation() {
synchronized (objLock) {
if (client != null && client.isStarted()) {
client.requestLocation();
}
}
}
}