百度地图sdk下载地址 下载百度sdk
1、去百度地图申请秘钥 :点击打开链接
2、将下载后的百度定位解压,将libs中的BaiduLBS_Android.jar与armeabi中的.so文件复制到自己的libs文件夹中
3、在清单文件中加入权限、服务、和秘钥 都不能少,否则报错或获取不到地理位置
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
</uses-permission>
<uses-permission android:name="android.permission.READ_LOGS" >
</uses-permission>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
<intent-filter>
<action android:name="com.baidu.location.service_v2.2" >
</action>
</intent-filter>
</service>
写你刚刚申请的秘钥。
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="这里写你刚刚申请的秘钥" />
4.、写一个Tapplication
package com.ybds;
import java.util.ArrayList;
import java.util.List;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.GeofenceClient;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
import android.app.Activity;
import android.app.Application;
import android.app.Service;
import android.os.Vibrator;
import android.util.Log;
import android.widget.TextView;
public class Tapplication extends Application{
public LocationClient mLocationClient;
public GeofenceClient mGeofenceClient;
public MyLocationListener mMyLocationListener;
public TextView mLocationResult,logMsg;
public TextView trigger,exit;
public Vibrator mVibrator;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
mLocationClient = new LocationClient(this.getApplicationContext());
initLocation();
mMyLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mMyLocationListener);
mGeofenceClient = new GeofenceClient(getApplicationContext());
mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);
mLocationClient.start();
}
private void initLocation() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);//设置定位模式
option.setCoorType("gcj02");//返回的定位结果是百度经纬度,默认值gcj02
int span=5000;
try {
//span = Integer.valueOf(frequence.getText().toString());
} catch (Exception e) {
// TODO: handle exception
}
option.setScanSpan(span);//设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true);
mLocationClient.setLocOption(option);
}
/**
* 监听位置信息 该方法能取到当前的位置信息
*/
public class MyLocationListener implements BDLocationListener {
public void onReceiveLocation(BDLocation location) {
if (location == null) {
Log.i("values", "type");
return;
}
//这里就是获取的经纬度
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());
Log.i("values", "type");
//xyData=new XYdata();
//xyData.setLatitude(location.getLatitude());
//xyData.setLongitude(location.getLongitude());
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());
// xyData.setdetail(location.getAddrStr());
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){
//获取地址详细
sb.append("\naddr : ");
sb.append(location.getAddrStr());
//运营商信息
sb.append("\noperationers : ");
sb.append(location.getOperators());
// xyData.setdetail(location.getAddrStr());
}
Log.i("values", sb.toString());
}
}
private static List<Activity> activityList = new ArrayList<Activity>();
public static void remove(Activity activity) {
activityList.remove(activity);
}
public static void add(Activity activity) {
activityList.add(activity);
}
public static void finishProgram() {
for (Activity activity : activityList) {
activity.finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
}
注意 :在清单文件中name=这个Tapplication