1登录百度账号
2下载对应sdk
3登陆API控制台申请key-创建应用-配置应用-获取安全码

获取秘钥中:
获得开发版sha1:
打开AndroidStudio的Terminal窗口,进入.android目录(默认是在C:\Users\Administrator.android目录下),输入如下命令:
keytool -v -list -keystore debug.keystore
密码为:android(输入时不显示)
获得发布版sha1:
1.将项目打包,Build–>Generated Signed APK(不会打包?看这里),生成jks库文件
2.进入jks文件所在目录,键如下命令 keytool -list -v -keystore store.jks

实现:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.BDNotifyListener;//假如用到位置提醒功能,需要import该类
import com.baidu.location.Poi;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;import java.util.List;public class MainActivity extends AppCompatActivity {public LocationClient mLocationClient = null;public BDLocationListener myListener = new MyLocationListener();private TextView location_text;private BaiduMap baiduMap;private boolean isFirstLoc=true;@Overrideprotected void onCreate(Bundle savedInstanceState) {// SDKInitializer.initialize(getApplicationContext());super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);location_text = (TextView) findViewById(R.id.location);MapView map= (MapView) findViewById(R.id.map);baiduMap = map.getMap();//开启定位图层baiduMap.setMyLocationEnabled(true);//声明LocationClient类mLocationClient = new LocationClient(getApplicationContext());mLocationClient.registerLocationListener( myListener );initLocation();mLocationClient.start();}private void initLocation(){LocationClientOption option = new LocationClientOption();option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系int span=1000;option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要option.setOpenGps(true);//可选,默认false,设置是否使用gpsoption.setLocationNotify(true);//可选,默认false,设置是否当GPS有效时按照1S/1次频率输出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);}public class MyLocationListener implements BDLocationListener {@Overridepublic void onReceiveLocation(final BDLocation 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());    //获取定位精准度
//------------------------将地图和定位圈关联起来-----------------------MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(100).latitude(location.getLatitude()).longitude(location.getLongitude()).build();// 设置定位数据baiduMap.setMyLocationData(locData);if (isFirstLoc) {isFirstLoc = false;LatLng ll = new LatLng(location.getLatitude(),location.getLongitude());MapStatus.Builder builder = new MapStatus.Builder();builder.target(ll).zoom(18.0f);baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));}//-------------------------------------------------------------------if (location.getLocType() == BDLocation.TypeGpsLocation){// GPS定位结果sb.append("\nspeed : ");sb.append(location.getSpeed());    // 单位:公里每小时sb.append("\nsatellite : ");sb.append(location.getSatelliteNumber());    //获取卫星数sb.append("\nheight : ");sb.append(location.getAltitude());    //获取海拔高度信息,单位米sb.append("\ndirection : ");sb.append(location.getDirection());    //获取方向信息,单位度sb.append("\naddr : ");sb.append(location.getAddrStr());    //获取地址信息sb.append("\ndescribe : ");sb.append("gps定位成功");} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){// 网络定位结果sb.append("\naddr : ");sb.append(location.getAddrStr());    //获取地址信息sb.append("\noperationers : ");sb.append(location.getOperators());    //获取运营商信息sb.append("\ndescribe : ");sb.append("网络定位成功");} else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 离线定位结果sb.append("\ndescribe : ");sb.append("离线定位成功,离线定位结果也是有效的");} else if (location.getLocType() == BDLocation.TypeServerError) {sb.append("\ndescribe : ");sb.append("服务端网络定位失败,可以反馈IMEI号和大体定位时间到loc-bugs@baidu.com,会有人追查原因");} else if (location.getLocType() == BDLocation.TypeNetWorkException) {sb.append("\ndescribe : ");sb.append("网络不同导致定位失败,请检查网络是否通畅");} else if (location.getLocType() == BDLocation.TypeCriteriaException) {sb.append("\ndescribe : ");sb.append("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");}sb.append("\nlocationdescribe : ");sb.append(location.getLocationDescribe());    //位置语义化信息final List<Poi> list = location.getPoiList();    // POI数据if (list != null) {sb.append("\npoilist size = : ");sb.append(list.size());for (Poi p : list) {sb.append("\npoi= : ");sb.append(p.getId() + " " + p.getName() + " " + p.getRank());}}Log.i("BaiduLocationApiDem", sb.toString());runOnUiThread(new Runnable() {@Overridepublic void run() {list.get(2).getName();location_text.setText(list.get(2).getName());}});}@Overridepublic void onConnectHotSpotMessage(String s, int i) {}}
}

新建Application文件:

public class MyApp extends Application{@Overridepublic void onCreate() {super.onCreate();SDKInitializer.initialize(getApplicationContext());}
}

布局文件中:

<com.baidu.mapapi.map.MapView android:layout_height="0dp" android:layout_width="match_parent" android:id="@+id/map" android:layout_weight="1"/> <TextView android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/location" android:text="位置"/>

清单文件中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.bawei.baidumapPractice2"><!-- 这个权限用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!-- 这个权限用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!-- 获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><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" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission><application
        android:name=".MyApp"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service><service
            android:name="com.baidu.location.f"android:enabled="true"android:process=":remote" /><meta-data
            android:name="com.baidu.lbsapi.API_KEY"android:value="UvMQ1Ghf1z958bcce0Wr0IFgFTXdYGPd" /></application></manifest>

Android中百度地图基础实现,定位相关推荐

  1. android百度导航实现,Android 集成百度地图实现设备定位

    Android 集成百度地图实现设备定位 步骤1: 申请android 端SDK : http://lbsyun.baidu.com/ 步骤2: 下载基础版SDK 步骤3: 下载示例程序 步骤4: 开 ...

  2. Android集成百度地图接口,实现定位+路径规划。新手教程

    本文主要内容包括:如何根据百度地图接口实现定位,并实现从A到B的路径规划功能(驾车,公交,步行).本文主要提供给新手参考,如果有错误希望博友们指出以便及时改正. 1.申请百度地图SDK的密钥(填写安全 ...

  3. android中百度地图的使用(一)

    因为公司主要是做旅游类app的,所以对地图的使用是比较频繁的,之前做过图吧地图,图吧地图可以说是地图届比较老的了,但是相对于开发来说用的比较少,这个有时间会总结一下.现在先开始我们的百度地图之旅吧. ...

  4. Android使用百度地图api获取定位信息(经纬度)

    文章目录 注册 申请密钥 配置 使用 遇到问题 注册 登录百度地图开放平台 注册百度地图开发者,填写相关信息 提交成功后收到邮件 点击链接弹出如下提示就算激活成功了 申请密钥 点击申请密钥或者创建应用 ...

  5. Android利用百度地图API实现定位功能(记录)

    本篇主要介绍一下如何使用百度地图API来实现定位以及地图的基本使用. 效果图如下: 步骤如下: 一.申请APIKey. (1)注册百度账号并申请开发者资质:http://developer.baidu ...

  6. android百度地图sdk定位权限,Android:使用百度地图SDK实现定位:下载SDK、申请密钥、动态获得Android权限...

    最近想实现一个打卡的功能,想到可以利用百度地图的SDK.网上有很多关于百度地图SDK定位.地图功能应用的demo,这部分倒不是很困难.但网上很多博客写的内容一般都着重于代码部分,很多下载配置和编译器设 ...

  7. html5 geolocation 百度地图,html5 geolocation配合百度地图api实现定位

    1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用 ...

  8. Android百度地图之位置定位和附近查找代码简单实现 (上)

    很长时间没有做Android相关知识了,闲暇之余再弄了弄最新的百度地图API,主要是进行百度地图附近餐馆查找功能来练练手,同时熟悉下最新的API教程.文章比较基础,也希望对你有所帮助~参考前文:   ...

  9. Flutter对接第三方高德地图+百度地图基础定位实现

    Flutter对接第三方高德地图+百度地图基础定位实现 原创:@As.Kai 博客地址:https://blog.csdn.net/qq_42362997 如果以下内容对您有帮助,点赞点赞点赞~ 高德 ...

最新文章

  1. 【FFmpeg】FFmpeg常用基本命令
  2. jQuery针对多个元素的相同点击事件
  3. BZOJ 1257 [CQOI2007]余数之和sum ——Dirichlet积
  4. net下web开发人员要掌握哪些技术才算好
  5. python之setdefault()和defaultdict()处理缺失值的键
  6. leetcode117. 填充每个节点的下一个右侧节点指针 II(层序遍历08)
  7. 反转!Python再次卫冕2020年编程榜,Java和C回落,你怎么看?​
  8. textbox有个AutoCompleteType的属性
  9. python画椭圆形_手残党福音:用Python画出机器人Dev
  10. Java SE作业:判断一个字符串是否是视频文件
  11. 批量删除QQ好友的方法
  12. 侵入式框架和非侵入式框架的区别
  13. 利用VBB仿真——实现LED+数字键盘密码验证
  14. MATLAB图像去雾处理
  15. 基于javacv的视频转码(升级版)
  16. 计算思维不是计算机科学的核心素养,信息技术学科核心素养
  17. php 图形库 锯齿,PHP imageantialias - 是否使用抗锯齿(antialias)功能
  18. 【转载】52nlp博客上的资源
  19. UML选择题复习题库
  20. 为何沃比帕克模式无法复制?

热门文章

  1. VR/AR 技术学习园地
  2. BurpSuite 通过google浏览器抓取https流量包
  3. 揭开特斯拉的地图“疑云”
  4. hrbust 1313 火影忍者之~静音【优先队列STL+模拟】
  5. 不是公网ip怎么搭建服务器
  6. UICollectionView 适配 iPhone 7 Plus
  7. ddr3ip核心_XILINX DDR3 IP核使用教程
  8. 设备树学习(二十三、aliases节点分析)
  9. 苹果商店上架流程_苹果应用商店APP上架流程介绍!(ASO推广优化)
  10. 【几维安全】共享单车安全漏洞频现 女黑客轻松破解4款共享单车app