AndroidStudio 加载 天地图 (2019年后开发授权申请)

 

 

 

本文主要内容讲述从申请天地图开发授权到AndroidStudio3.0加载天地图官网快速入门Demo的整个过程。对于刚出入AndroidStudio和天地图开发的小白有一定的帮助。

1.申请天地图密钥Key

天地图官网(http://lbs.tianditu.gov.cn/)注册,申请个人开发者,登录控制台,创建Android应用程序。

 

1.1获取发布版SHA1

首先你要知道自己的AndroidStudio安装路径下的keytool.exe工具在哪,比如我的路径E:\Android\Android Studio\jre\bin\keytool.exe

之后Win+R  →cmd→打开控制台,进入到E:\Android\Android Studio\jre\bin路径下

输入以下代码

keytool.exe -list -v -keystore [路径]

注意上述代码中间的空格,最后的路径是你的debug.keystore所在路径,windows系统,路径一般在

C:\Users\Administrator\.android\debug.keystore

完整代码:keytool.exe -list -v -keystore C:\Users\Administrator\.android\debug.keystore

回车

输入密钥:android

把SHA1中的内容写进1.1中。

1.2获取开发版SHA1

首先你要有一个安卓软件签名文件,AndroidStudio如何生成签名文件自行百度(给个链接),将生成的*****.jks文件路径记录下来。

还在刚才的控制台窗口,写以下代码:

keytool.exe -list -v -keystore [.jks路径]

比如我的路径这样写:

keytool.exe -list -v -keystore C:\Users\Administrator\AndroidStudioProjects\bdhapk.jks

输入密钥:你设置签名文件时的密码

回车

将此处的SHA1写在1.2处

1.3获取包名

这里指的是你用AndroidStudio创建的项目的包,可再项目配置文件AndroidManifest.xml中看到package="包名",复制过去写进1.3即可,比如

package="com.example.administrator.tiandituaddmap1">,此处的包名为com.example.administrator.tiandituaddmap1

 

 

2.添加天地图API包

下载API

解压以后,AndroidStudio切换Project目录,把.jar文件复制到项目的app\libs文件下,在app\src\main文件夹下新建jniLibs文件夹,必须是这个名字,要注意。将剩余的四个文件夹复制到jniLibs文件夹下,菜单栏-build-rebuild project。等待

如果你用的AndroidStudio编译版本在23以下,此时按照官网快速入门Demo即可实现天地图加载。

如果你的编译版本在23以上,需要再做一下处理。

3.动态获取权限

编译版本在23以上后,不仅要在AndroidManifest.xml文件中写入需要权限外,还需要再java代码中获取权限(敏感权限,在此不做区别,将权限在java中重新获取一遍),直接放代码,可对照自行修改。

package com.example.administrator.tiandituaddmap1;

import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.tianditu.android.maps.GeoPoint;
import com.tianditu.android.maps.MapController;
import com.tianditu.android.maps.MapView;

public class MainActivity extends AppCompatActivity {

    private MapView mapView;

    //在API23+以上,不仅要在AndroidManifest.xml里面添加权限 还要在JAVA代码中请求权限:
    // Storage Permissions
    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.ACCESS_NETWORK_STATE,
            Manifest.permission.ACCESS_WIFI_STATE,
            Manifest.permission.INTERNET,
            Manifest.permission.CALL_PHONE,
            Manifest.permission.ACCESS_COARSE_LOCATION,
            Manifest.permission.READ_PHONE_STATE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在加载布局之前获取所需权限
        addpermission();
        setContentView(R.layout.activity_main);
        init();
    }
    public void addpermission(){
        int permission = ActivityCompat.checkSelfPermission(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (permission != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE);
        }
    }
    public void init(){
        new Thread(){
            @Override
            public void run() {
                mapView=(MapView)findViewById(R.id.main_mapview);
                //启用内置的地图缩放按钮
                mapView.setBuiltInZoomControls(true);
                //得到mapview的控制权,可以用它控制和驱动平移和缩放
                MapController mapController=mapView.getController();
                //用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)
                GeoPoint point=new GeoPoint((int)(39.915*1E6),(int)(116.404*1E6));
                //设置地图中心点
                mapController.setCenter(point);
                //设置地图等级
                mapController.setZoom(12);;
            }
        }.start();

    }
}

需要注意的一点是,权限的获取要放在加载布局文件之前。

 

至此,问题已被解决。可以运行程序,加载天地图。

 

结果如下图

 

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值