1.创建项目
打开百度地图开放平台,登录或者注册帐号,在控制台中创建应用。如图:
输入信息,获取安全码,如图:
开发版SHA1获取方法:
在Android Studio中找到Terminal并打开,或者在最下面找到Terminal 如下图:
输入命令 C: 进入c盘;
接着输入命令 cd Users\Administrator 其中Administrator是自己的用户名 Administrator文件下有个.adnroid文件, 输入命令 cd .android,最后就找到了.android。输入命令 keytool -list -v -keystore debug.keystore 按回车,然后输入秘钥:android(系统默认)这里直接回车,如下图:
发布版SHA1获取:
前面和获取开发版的步骤一样,最后一步更改一下,输入命令 keytool -list -v -keystore 文件目录\自己的签名文件 比如我的:keytool -list -v -keystore E:\appkey\bdmap.jsk ,接着按回车,然后输入秘钥:(创建签名文件时的密码) 回车 如下图:
点击提交,即可获得AK。如图:
下载SDK,选择我们需要的功能下载,如图:
- 1、在app文件夹下的新建libs文件夹(默认应该有),将BaiduLAB_Android.jar文件拷入,右键该jar包,选择add as library。
2、在src文件夹下的的main文件夹下新建jniLibs文件夹,将以下这些文件夹拷入,如图:
- 在AndroidManifest.xml文件下添加权限信心、百度key等
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="map.hq.com.baidumapdemo">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 访问精确位置的权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
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>
<!-- 百度地图key -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="BNpta9aVS2420ZlN2tGtOHmEWI45Avbr" />
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
</service>
</application>
</manifest>
activity_main.xml里添加控件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="map.hq.com.baidumapdemo.MainActivity">
<com.baidu.mapapi.map.MapView
android:id="@+id/baiduMapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
在MainActivity.class中
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//该方法注意要在setContentView之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}
最后效果如图: