1:如果你没有百度帐号,要先注册百度帐号,登录,进入API控制台服务,输入应用名称,将应用类型改为“Android SDK”,输入应用安全码。这一布比较简单,如图
你只需要填写图中的内容即可,获取SHA1码的具体方法,可以参考这篇博客

http://blog.csdn.net/harvic880925/article/details/17618743

2:填写完上述内容,会生成一个密钥,如图

3:下载百度地图相关SDK,主要有4种类型,选择自己需要的即可,如果只是定位,那么第一种就可以(现在最新的包改为BaiduLBS_Android.jar,不是以前的baidu_xxx.jar了,我下载的时候不知道出了什么问题,下载的包里面始终没有LocationClient这个类,最后只要下载Demo,然后把demo中libs目录下的包拷到自己的羡慕中来解决)。下载路径:
http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download
4:完成上述步骤后,在manifest中进行如下配置:

<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" /><!-- 放在application节点下的--!>
<meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="填写第2步的密钥" /><serviceandroid:name="com.baidu.location.f"android:enabled="true"android:process=":remote" >
</service>

5:到此,百度SDK的前期准备工作全部完成,简单使用时,只需要在布局中添加如下显示百度地图控件:

<com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true" />

6:在代码中初始化百度SDK,然后实现BDLocationListener接口,在onReceiveLocation(BDLocation location) 将定位到的位置显示到控件上即可。完整代码如下:

public class MainActivity extends Activity {private final static String TAG = "BaiduMap";private MapView mMapView = null;private LocationClient mLocationClient;private BDLocationListener mLocationListener;private BaiduMap mBaiduMap;private LocationManager lm;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);initView();initLocation();}private void initLocation() {mLocationClient = new LocationClient(getApplicationContext());mLocationListener = new MyLocationListener();mLocationClient.registerLocationListener(mLocationListener);initLocationOptions();mLocationClient.start();}private void initView() {mMapView = (MapView) findViewById(R.id.bmapView);lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);// 判断GPS是否正常启动if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {Toast.makeText(this, "请开启GPS导航...", Toast.LENGTH_SHORT).show();// 返回开启GPS导航设置界面Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);startActivityForResult(intent, 0);}}/*** 设置属性*/private void initLocationOptions(){  LocationClientOption option = new LocationClientOption();  option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy  );//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备  mBaiduMap = mMapView.getMap();mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//设置比例,具体参考自己需要MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);mBaiduMap.setMapStatus(msu);option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系  int span = 1000;  option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的  option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要  option.setOpenGps(true);//可选,默认false,设置是否使用gps  option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果  option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”  option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到  option.setIgnoreKillProcess(false);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死  option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集  option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要  mLocationClient.setLocOption(option);  }  @Overrideprotected void onStart() {// 开启图层定位mBaiduMap.setMyLocationEnabled(true);if (!mLocationClient.isStarted()) {mLocationClient.start();}super.onStart();}private class MyLocationListener implements BDLocationListener {@Overridepublic void onConnectHotSpotMessage(String arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void onReceiveLocation(BDLocation location) {//定义Maker坐标点  LatLng point = new LatLng(location.getLatitude(), location.getLongitude());       //构建Marker图标  BitmapDescriptor bitmap = BitmapDescriptorFactory  .fromResource(R.drawable.map_gps);//构建MarkerOption,用于在地图上添加Marker  OverlayOptions option = new MarkerOptions()  .position(point)  .icon(bitmap);  //在地图上添加Marker,并显示  mBaiduMap.addOverlay(option); mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(point)); //更新地图状态  }}@Overrideprotected void onStop() {// 关闭图层定位mBaiduMap.setMyLocationEnabled(false);mLocationClient.stop();super.onStop();}@Overrideprotected void onDestroy() {super.onDestroy();// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();mMapView = null;}@Overrideprotected void onResume() {super.onResume();// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}
}

定位结果如下:

ps:想实现方向传感的,可以参考这位大兄弟的,写的很好,因为坑爹的机器没有传感器啊!!!,文章路径:
http://www.2cto.com/kf/201412/359292.html
就是这么简单,代码我就不上传了,完整代码就这么多

快速集成百度定位功能相关推荐

  1. Android集成百度定位以及导航详解

    Android集成百度定位以及导航详解                    百度地图Android SDK 官方下载地址:                            包括类参考.示例代码 ...

  2. Spring Boot 快速集成第三方登录功能

    Spring Boot 快速集成第三方登录功能 前言 此 demo 主要演示 Spring Boot 项目如何使用 史上最全的第三方登录工具 - JustAuth 实现第三方登录,包括 QQ 登录.G ...

  3. Android集成百度定位,超详细,拒绝坑,附demo!!!

    众所周知,百度地图作为定位,地图,导航界的大佬之一,我们的项目中有这方面的需求,百度地图集成也是个不错的选择. 百度地图集成成本极低,首先,它免费,官网文档清晰,demo明确,但还是有很多人要才坑,正 ...

  4. android开发游记:集成百度定位SDK进行实时定位 获取当前城市地理信息

    定位功能在app开发中很常用,大多数企业都是不具备定位资质的,所有一般是通过接入第三方的sdk来进行定位,比较熟悉的有如:百度.高德.谷歌.腾讯等.而国内比较地图策划比较成熟的主要是百度和高德,这里就 ...

  5. Flutter集成百度定位和百度地图

    准备 请尽量先阅读官方文档,本文是对官方文档的合并整理,结合自己项目集成过程. 插件请以官方最新版本为主. <百度定位.地图Flutter插件开发文档> <Api中心> 在使用 ...

  6. 解决集成百度定位SDK获取不到定位信息的问题

    我们很多场景都需要获取用户的定位信息,包括使用友盟统计,其实也会根据设备的定位信息来分析用户的使用行为. 1)集成百度推送,需要打开百度开发文档,并且注册账户. 2)根据开发文档下载基础定位的SDK. ...

  7. Android 集成高德定位功能,获取经纬度,城市至门牌号码

    老规矩,上效果图,先给你们看下效果: 虽然打上了马赛克,但是装到别人手机上还是看着很爽啊; 友善提醒:禁止用作非法用途 首先进入高德地图开放平台 先要下载高德的定位SDK包,这里就不演示了 1.--- ...

  8. 微信小程序集成 “百度语音合成” 功能

    文章目录 1.成为百度AI开放平台的开发者 2.领取免费额度 3.在微信小程序中使用 4.java中使用 百度AI开发平台文档:https://ai.baidu.com/ai-doc/SPEECH/j ...

  9. Flutter 混合开发 - 03 百度地图定位功能 ios 篇

    本节目标 创建 ios flutter 插件流程 集成百度定位功能 视频 https://www.bilibili.com/video/BV1HT4y1L73i/ 代码 https://github. ...

最新文章

  1. AngularJS2 + ASP.NET MVC项目
  2. iphone圆点怎么弄出来_新款iPhone放出终极大招,果粉:就没高级点的嘛
  3. java spring 服务器关闭_通过springboot怎么停止服务器??
  4. C#去掉字符串中的汉字
  5. 鏖战双十一-阿里直播平台面临的技术挑战
  6. 【bzoj4080】[Wf2014]Sensor Network 随机化
  7. 提示No Launcher activity found
  8. 浏览器API location
  9. 如何将JAR添加到Jetbrains MPS项目
  10. 我的博客园css样式
  11. HBase集群环境部署
  12. 吐血整理了下AAAI2022中和NLP相关的论文,包括信息抽取、机翻、NER、多模态、数据增强、问答、多语言、KD、文本纠错等...
  13. Item 10.const成员函数 (Meaning of a Const Member Function)
  14. 微信运动计步器 php,微信修改步数(卡密版)v1.2.1 PHP程序
  15. 微信公众平台二次开发技术文档
  16. java get中文乱码怎么解决_java中get请求中文乱码怎么办?
  17. 飞机大战(简单版)(C/C++) (VS)
  18. 未能加载程序集oracle.dataaccess 控制台,未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项.试图加载格式不正确的程序...
  19. JAVA基础(12.Java中的常用类String)
  20. 表格对决CSS--一场生死之战 (转自“清清月儿”)

热门文章

  1. CIC滤波器和SINC滤波器
  2. 基于CNN的动态手势识别:Real-time Hand Gesture Detection and Classification Using Convolutional Neural Networks
  3. oracle adf源代码在哪里,第 3 章 | 从设计到实践全面了解 Oracle ADF 应用程序
  4. 怎么将视频里的语音转成文字?不妨试试这三款转文字工具
  5. 从前端技术到体验科技
  6. 毕业/课程设计——基于STM32的智能灯光控制系统(物联网、智能家居、手机APP控制、语音控制)
  7. 致敬平凡程序员妙优车助力1024程序员节
  8. 安装NET.FRAMEWORK报错:error 25015安装法度集 C:\Windows\Microsoft .NET\Framework\v2.0.50727\xxx.dl...
  9. Java 8 forEach使用
  10. jav中jar包的MANIFEST.MF