Android百度地图开发-第一篇:申请、搭建百度地图

摘要:
Android(系统默认值)输入:单击“下一步”按钮,从中可以选择CreateNewKeyStore或ChooseExistingKeyStore。填写国家/地区后,单击“OK”按钮:在这里创建开发版本密钥库文件,并创建创建的发行版密钥库文件的地址。在相应的输入框中填写所查看版本和开发版本的SHA1:
一、前言

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

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

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

Android百度地图开发-第一篇:申请、搭建百度地图第1张

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

1.获取开发版SHA1:

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

Android百度地图开发-第一篇:申请、搭建百度地图第2张

这就看到了开发版SHA1了。

2.获取发布版SHA1:

2.1.创建自己的签名文件    

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

Android百度地图开发-第一篇:申请、搭建百度地图第3张

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

Android百度地图开发-第一篇:申请、搭建百度地图第4张

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界面(有的可能不会出现这个界面),

Android百度地图开发-第一篇:申请、搭建百度地图第5张

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

Android百度地图开发-第一篇:申请、搭建百度地图第6张

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

2.2.查看发布版的SHA1

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

Android百度地图开发-第一篇:申请、搭建百度地图第7张

这就看到了发布版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百度地图开发-第一篇:申请、搭建百度地图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#格式化数值结果表GitHub和GitLab的区别 转自(zhang_oracle)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android ImageView 宽度设定,高度自适应

最近碰到一个需求,要求是在不知道图片宽度和高度的情况下,让图片在指定宽度内充满,同时高度自适应,在网络上查找了一下,也有很多解决方法,后来针对自己的应用,选择了一个修改较小的方案,最后证明效果还是蛮不错的,记录在这里,希望能帮助到有同样需求的人。 首先,需要给你的ImageView布局加上android:adjustViewBounds="true" &...

Centos中如何配置Texlive2013中文字体的问题

Centos中如何配置Texlive2013中文字体的问题: 第一步是下载你需要的字体,我从windows/fonts中拷贝的比较多,你只要复制你需要的字体即可。 注意只要文件扩展名为ttf的文件,ttc的文件不要复制。 windows/fonts中没有simkai.ttf,只有simkai.ttc,这个好办,在网上下一个simkai.ttf即可:...

CVE-2017-12617 Tomcat 远程代码执行

0×00前情提要 Apache Tomcat团队10月3日宣布,如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操作系统上的潜在危险的远程执行代码(RCE)漏洞,CVE-2017-12617:远程代码执行漏洞。 只需参数readonly设置为false或者使用参数read...

BMIDE开发Soa Services提供给AWC端调用

   虽然AWC提供的API基本上足够使用,但是JS处理各种逻辑实在是麻烦,不熟悉JS的话远没有ITK来的方便,在这里记录一下如何在BMIDE中开发服务提供给AWC端调用。  大致分为三个步骤:   * BMIDE开发环境搭建   * 创建服务、开发、构建服务   * 从业务建模器 IDE 导入 SOA 模板 1、在BMIDE中创建一个新的业务建模器IDE...

C#客户端Redis服务器的分布式缓存

介绍 在这篇文章中,我想介绍我知道的一种最紧凑的安装和配置Redis服务器的方式。另外,我想简短地概述一下在.NET / C#客户端下Redis hash(哈希类型)和list(链表)的使用。 在这篇文章主要讲到: 安装Redis服务器(附完整的应用程序文件设置) Redis服务器保护(配置身份验证) 配置服务器复制 从C#应用程序访问缓存 使用Redi...

Drupal的目录结构

①.includes 文件夹   存放Drupal程序头文件。 Drupal的一些函数和变量的定义,均可在此文件夹下的文件中找到。这 些文件都是以.inc结尾的。 ②.misc文件夹   Drupal所用的其他文件,如图片, javascript 脚本和 css样式表等。 ③.Module文件夹   Drupal核心模块的存放目录。但是,如果用户添加自定义...