一、前言

这是第一篇关于Android使用百度地图的学习记录,主要记录:
  1.在百度地图开发者平台上申请API Key。
  2.在自己的应用中加入百度地图的Android版SDK。
  3.在自己的应用中显示一个地图。

二、在百度地图开发者平台上申请API Key

百度地图开发者平台地址:http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5。点击界面的“申请密钥”,进入界面之后,点击“创建应用”按钮。

将应用类型选择为“Android SDK”,要填写应用名称、发布版本SHA1、开发版本SHA1,所以我建议现在就创建好你的应用项目,也好查看所需要填写的信息。在这里我的应用名称为“百度地图测试”,包名为"com.zhangmiao.baidumaptest11_4"。
发布、开发版本的SHA1的查看方式:

1.获取开发版SHA1:

输入命令:keytool -list -v -keystore debug.keystore,回车
输入密钥库口令:android(系统默认)回车。

这就看到了开发版SHA1了。

2.获取发布版SHA1:

2.1.创建自己的签名文件    

在Android Studio软件中选择Build->Generate Signed APK。点击Next按钮

这里可以选择Create New Key Store或者Choose Existing Key Store,选择存在的KeyStore文件也是可以的,直接选择即可,这里,我介绍一下创建新的KeyStore的步骤,点击Create new Key Store按钮,

Key store path:选择KeyStore的文件路径与名称。
Password:密码
Confirms:再次输入密码
Alias:别名
Password:key的密码
Confirms:再次输入密码
Validity(years):密钥的有效期
First and Last Name:你的名字
Organizational Unit:单位
Organization:组织
City or Locality:城市或者所在地
State or Province:省份
Country Code (XX):国家
填写完成之后点击"ok"按钮,返回到了Generate Signed APK的界面,这个时候发现界面的Key store password、Key alias、Key Password已经自动填写好了,
点击"Next"按钮,出现了Enter Master Password界面(有的可能不会出现这个界面),

填写密码即可,点击“OK”按钮,

Build Type的选项是release,还要记得勾选Signature Versions的选项。点击Finish按钮,到这里开发版本的keystore文件就创建好了。

2.2.查看发布版的SHA1

输入命令:keytool -list -v -keystore “创建的发布版的keystore文件的地址”,回车。
输入密钥库口令:前面设置的是什么,这里填写什么。

这就看到了发布版SHA1了。
将查看到的发布版与开发版的SHA1填写进对应的输入框中。然后点击提交即可。

三、在自己的应用中加入百度地图的Android版SDK

先下载百度地图Android版的SDK:下载地址:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download,点击自定义下载,勾选自己需要的功能,点击开发包下载即可。
下载完成之后,解压压缩包,将libs里面的文件全部放入自己项目的libs文件夹下。在项目的build.gradle中加入以下语句:

android {
...
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
} }

这样就在你的项目中引入了百度地图的API了。

四、在自己的应用中显示一个地图

1.修改activity_main布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <com.baidu.mapapi.map.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" /> </LinearLayout>

2.添加API_KEY

在AndroidManifest.xml文件中,为Application添加api_key

    <application
...>
<meta-data android:name="com.baidu.lbsapi.API_KEY"
android:value="在百度地图开发者平台界面查看自己应用的(访问应用)AK"/>

3.修改MainActivity文件

public class MainActivity extends AppCompatActivity {

    private MapView mMapView = null;

    private BaiduMap bdMap;

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.map_view);
} @Override
protected void onResume() {
super.onResume();
mMapView.onResume();
} @Override
protected void onPause() {
super.onPause();
mMapView.onPause();
} @Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
MapView.setMapCustomEnable(false);
mMapView = null;
}
}

4.添加权限

在AndroidManifest.xml中添加以下权限:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

现在就可以运行程序了,可以看到出现地图了。

代码地址: https://github.com/ZhangMiao147/BookCode_TheFirstLineOfCode/tree/master/baidumaptest11_4

Android百度地图开发-第一篇:申请、搭建百度地图的更多相关文章

  1. 基于GBT28181:SIP协议组件开发-----------第一篇环境搭建

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3930018.html,qq:1269122125. SIP协议在安 ...

  2. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  3. [转]Android样式的开发:shape篇

    转载自Keegan小钢原文链接:http://keeganlee.me/post/android/20150830 Android样式的开发:shape篇Android样式的开发:selector篇A ...

  4. Android样式的开发:shape篇

    转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/android/20150830微信订阅号:keeganlee_me写于2015-08-30 And ...

  5. iOS开发——高级技术精选&底层开发之越狱开发第一篇

    底层开发之越狱开发第一篇 做越狱开发也有一些时间了,有很多东西想总结一下,希望给他人一些借鉴,也是自己对过去开发经历的一些总结.个人不推荐使用盗版,这里主要以技术介绍为主. 这个系列里面主要介绍怎样进 ...

  6. Android开源框架Afinal第一篇——揭开圣女的面纱

    Android开源框架Afinal第一篇——揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...

  7. 【iOS地图开发】巧妙打造中英文全球地图

    地图开发的同学们经常遇到这样的问题,国内版地图开发,用高德或者百度就行了.但是,国外的地图怎么办?这里告诉大家,如果利用iOS地图,打造中英文的,国内国外都能用的,全球地图. 制作全英文地图的展示并不 ...

  8. android 串口开发第一篇:搭建ndk开发环境以及第一个jni调用程序

    一:ndk环境搭建 1:开发环境 我使用的是android studio 2.3.3版本,搭建ndk开发环境比较简单,打开File----Settings----Appearance&Beha ...

  9. Android下百度地图开发(一):基础地图展示

    最终效果如: 这个需要详细说下,准备工作较为繁琐. 第一步:去百度申请一个开发者账号,新建一个android应用,会让你输入开发者SHA1,目前我只拿到开发版SHA1,发布版那里也填的是这个. 获取方 ...

随机推荐

  1. 多重bash登入的history写入问题

    问题:如果一个用户同时开好几个 bash 接口, 这时~/.bash_history中会写入哪个bash的历史命令记录? 答:所有的bash 都有自己的 HISTSIZE 笔记录在内存中,因为等到注销 ...

  2. grid表格选择模式

    selModel: { // type: 'checkboxmodel', type: 'cellmodel', // mode: 'SIMPLE', mode: 'SINGLE', checkOnl ...

  3. Angularjs在360兼容模式下取数据缓存问题解决办法

    测试提了一个bug,在360浏览器兼容模式下,删除页面数据需要手动刷新浏览器才能看到最新的数据.首先要复现当时的问题,很容易就复现了,但是发现在360浏览器兼容模式下无法打开开发者工具.好在经过反复重 ...

  4. python 遍历列表 list

    names=['a','b',['aha',[['lucy','lily']]] 遍历这个列表 def print_list(this_list); for name in this_list: if ...

  5. Let's Encrypt 免费SSL证书

    Let's Encrypt免费又好用的证书,废话不多说.    假设我的域名为:163.org   1.克隆代码 git clone https://github.com/letsencrypt/le ...

  6. 使用c#解析json库

    写了个c#版的json解析库,提供了json到hashtable以及hashtable到json字符串的转换 受惠于c#的语法特性,hashtable到json的解析变得非常简单 先判断传入的obje ...

  7. 【Android Developers Training】 81. 解析XML数据

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  8. Ext 常用组件解析

    Ext 常用组件解析 Panel 定义&常用属性 //1.使用initComponent Ext.define('MySecurity.view.resource.ResourcePanel' ...

  9. Ionic 应用图标,信息修改

    Ionic 应用图标,信息修改 Ionic 应用图标 修改 准备好替换的图标并生成各个尺寸的图标 1.使用命令行进入项目根目录,执行命令ionic resources 替换的图片放在resources ...

  10. Django开发的基于markdown的博客开源

    PiperMarkdown Blog for Django1.11,Python 3.6,based on Markdown,网址,希望大家能给个star,谢谢! 什么是PiperMarkdown 这 ...