主方法
package demo.baidudemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
public class MapsActivity extends Activity {
public LocationClient mLocationClient = null;
private LocationClientOption.LocationMode tempMode = LocationClientOption.LocationMode.Hight_Accuracy;
private String tempcoor="gcj02";
private TextView textView1;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.this_one);
mLocationClient = ((LocationApplication)getApplication()).mLocationClient;
textView1= (TextView) findViewById(R.id.textView1);
button= (Button) findViewById(R.id.startLocation);
((LocationApplication)getApplication()).mLocationResult = textView1;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
InitLocation();
mLocationClient.start();
}
});
}
private void InitLocation(){
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);
option.setLocationMode(tempMode);//设置定位模式
option.setCoorType(tempcoor);//返回的定位结果是百度经纬度,默认值gcj02
int span=10000;
option.setScanSpan(span);
//设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true);
mLocationClient.setLocOption(option);
}
@Override
protected void onStop() {
mLocationClient.stop();
super.onStop();
}
}
Localapplition文件:
package demo.baidudemo;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import android.app.Application;
import android.app.Service;
import android.os.Vibrator;
import android.util.Log;
import android.widget.TextView;
/**
* 主Application
*/
public class LocationApplication extends Application {
public LocationClient mLocationClient;
public MyLocationListener mMyLocationListener;
public TextView mLocationResult,logMsg;
public Vibrator mVibrator;
@Override
public void onCreate() {
super.onCreate();
mLocationClient = new LocationClient(this.getApplicationContext());
mMyLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mMyLocationListener);
mVibrator =(Vibrator)getApplicationContext().
getSystemService(Service.VIBRATOR_SERVICE);
}
/**
* 实现实位回调监听
*/
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
//Receive Location
StringBuffer sb = new StringBuffer(256);
sb.append("time : ");
sb.append(location.getTime());
sb.append("\nerror code : ");
sb.append(location.getLocType());
sb.append("\nlatitude : ");
sb.append(location.getLatitude());
sb.append("\nlontitude : ");
sb.append(location.getLongitude());
sb.append("\nradius : ");
sb.append(location.getRadius());
if (location.getLocType() == BDLocation.TypeGpsLocation){
sb.append("\nspeed : ");
sb.append(location.getSpeed());
sb.append("\nsatellite : ");
sb.append(location.getSatelliteNumber());
sb.append("\ndirection : ");
sb.append("\naddr : ");
sb.append(location.getAddrStr());
sb.append(location.getDirection());
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){
sb.append("\naddr : ");
sb.append(location.getAddrStr());
//运营商信息
sb.append("\noperationers : ");
sb.append(location.getOperators());
}
logMsg(sb.toString());
Log.i("BaiduLocationApiDem", sb.toString());
}
}
/**
* 显示请求字符串
* @param str
*/
public void logMsg(String str) {
try {
if (mLocationResult != null)
mLocationResult.setText(str);
} catch (Exception e) {
e.printStackTrace();
}
}
}
谁能帮我看看~感激不尽
如果代码本身没有问题,很有可能是签名的问题
集成百度地图失败,最容易犯的错误就是签名错误,Android studio的debug运行的签名就要保证是去百度后台申请key的时候的签名
debug的签名可以在module setting里面设置