Android 百度地图,了解一下

前言

现在基本上每个人手机都有地图这一APP把,常用的就属谷歌地图,百度地图,高德地图等等,它带来了我们意想不到的方便,比如IT程序员去面试,都遇到过找不到路的囧境把,如果面试的途中,手机突然没电,那么没有地图的指引是很少能找到正确地点的,害羞的人连问路都不好意思问~~2333333

百度地图开放平台
百度地图SDK文档中心

简介

百度地图 Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。


(一)申请密钥,百度API控制台页面

创建应用,该套地图SDK免费对外开放,接口使用无次数限制。在使用前,您需先申请密钥(ak)才可使用
Android 百度地图,了解一下_第1张图片

将应用类型选择为“Android SDK”,要填写应用名称、发布版本SHA1、开发版本SHA1,所以我建议现在就创建好你的应用项目,也好查看所需要填写的信息。在这里我的应用名称为“Baidu Map”,包名为”com.zk.baidumap”

发布、开发版本的SHA1的查看方式:

  1. 获取开发版SHA1:
    输入命令 :cd .android 回车,cd keytool -list -v -keystore debug.keystore 回车。
    Android 百度地图,了解一下_第2张图片

  2. 获取发布版SHA1:
    创建自己的签名文件,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文件就创建好了。
    输入命令:cd “Jdk bin 目录地址” 回车, cd keytool -list -v -keystore “创建的发布版的keystore文件的地址”,回车。
    输入密钥库口令:输入你生成.jks文件中 自己填写的密码。
    Android 百度地图,了解一下_第7张图片

(二)AS工程配置

  1. 开发包复制到工程中
    百度SDK下载连接
    Android 百度地图,了解一下_第8张图片

  2. 根据项目需求选择对应的功能包,点击开发包下载,是一个解压包,解压完之后,是这样的
    Android 百度地图,了解一下_第9张图片

  3. 官方指出,有两种导入功能包的方式。常用的是在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库;libs包放jar文件,导入所依赖的对应的jar文件即可
    Android 百度地图,了解一下_第10张图片

  4. 应用混淆

    -keep class com.baidu.** {*;}
    -keep class vi.com.** {*;}    
    -dontwarn com.baidu.**

    至此,配置工程大部分已经完结。


使用

1.在AndroidManifest中添加开发密钥AK值、所需权限等信息

添加访问应用AK

    <application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
        application>

2.添加权限(6.0另配置)

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
//获取设备网络状态,禁用后无法获取网络状态
<uses-permission android:name="android.permission.INTERNET"/> 
//网络权限,当禁用后,无法进行检索等相关业务
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
//读取设备硬件信息,统计数据
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 
//读取系统信息,包含系统版本等信息,用作统计
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
//获取设备的网络状态,鉴权所需网络代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
//获取统计数据
<uses-permission android:name="android.permission.GET_TASKS" /> 
//鉴权所需该权限获取进程列表
<uses-permission android:name="android.permission.CAMERA" />  
//使用步行AR导航,配置Camera权限

3.在布局xml文件中添加地图控件

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

4.在应用程序创建时初始化 SDK引用的Context 全局变量,建议在Application的初始化方法

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        initBaiduMap();
    }
    private void initBaiduMap() {
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext
        //注意该方法要再setContentView方法之前实现
        SDKInitializer.initialize(getApplicationContext());
    }
}

5.创建地图Activity,管理地图生命周期

public class MainActivity extends AppCompatActivity{  
    private MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
        }  
    }

完成以上步骤后,运行程序,即可在您的应用中显示地图

效果图:


Gtihub地址,添加了定位功能,待优化

你可能感兴趣的:(Android,第三方SDK,我不是程序员)