首页 > android studio调用百度SDK进行定位,老返回错误码62,怎么回事

android studio调用百度SDK进行定位,老返回错误码62,怎么回事

主方法

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里面设置

【热门文章】
【热门文章】