百度地图

例:

登陆API控制台百度地图

点击打开链接下载之后直接把libs文件夹里的复制到项目中的libs文件夹里,然后编译一下

登录会跳转到API控制台服务,具体如下图:

百度地图

创建应用

点击"创建应用",进入创建AK页面,输入应用名称,将应用类型改为:“Android SDK”:

百度地图


百度地图

配置应用

在应用类型选为“Android SDK”后,需要配置应用的安全码,如下图所示:

百度地图

获取安全码

安全码的组成规则为:Android签名证书的sha1值+packagename例如:


SHA1:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75


包名:com.baidumap.demo


Android应用获取包名packagename,根据开发工具不同,获取位置有所不同

1、使用 eclipse 开发

包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:

百度地图

2、使用 Android studio 开发

包名需要在文件build.gradle中查询 applicationId,并确保 applicationId 与在 AndroidManifest.xml 中定义的包名一致

在文件build.gradle中查询 applicationId,方法如图:

百度地图


Android签名证书的sha1值获取方式有两种:

第一种方法:使用keytool

第1步:运行进入控制台

百度地图 百度地图

第2步:定位到.android文件夹下,输入cd .android

百度地图

第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(**口令是android),例如:

其中keytool为jdk自带工具;keystorefile为Android 签名证书文件

百度地图

百度地图


android {
    
    sourceSets{
        main{
            jniLibs.srcDir 'libs'
            //说明so的路径为该libs路径,关联所有地图SDKso文件
        }
    }

}






在AndroidManifest中添加开发**、所需权限等信息;

(1)在application中添加开发**

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

(2)添加所需权限

注意: 权限应添加在 appliction 之外,如添加到appliction 内部,会导致无法访问网络,不显示地图。

<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权限

例:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.day_0525_baidu">

    <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权限

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        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>
        
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="KcMkKprvnBENn5htyXrG8iSVLbmSHupz" />
        
    </application>
</manifest>
百度地图





在布局xml文件中添加地图控件;
<com.baidu.mapapi.map.MapView  
    android:id="@+id/bmapView"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />
创建地图Activity,管理地图生命周期;
public class MainActivity extends Activity {  
    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();  
        }  
    }

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