android的百度地图开发(一)
1,注册百度开发者账号
2,申请key ,注意开发版SH和发布版的SH
获取开发版SHA1:
输入命令:keytool -list -v -keystore debug.keystore,回车
输入密钥库口令:android(系统默认)回车。
.获取发布版SHA1:
创建自己的签名文件
在Android Studio软件中选择Build->Generate Signed APK。点击Next按钮
这里可以选择Create New Key Store或者Choose Existing Key Store,选择存在的KeyStore文件也是可以的,直接选择即可,这里,我介绍一下创建新的KeyStore的步骤,点击Create new Key Store按钮,
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界面(有的可能不会出现这个界面),
填写密码即可,点击“OK”按钮,
Build Type的选项是release,还要记得勾选Signature Versions的选项。点击Finish按钮,到这里开发版本的keystore文件就创建好了。
查看发布版的SHA1
输入命令:keytool -list -v -keystore “创建的发布版的keystore文件的地址”,回车。
输入密钥库口令:前面设置的是什么,这里填写什么。
这就看到了发布版SHA1了。
将查看到的发布版与开发版的SHA1填写进对应的输入框中。然后点击提交即可。
3,官网上下载so和jar包,并导入到项目中
4,配置build.gradle
在项目的build.gradle中加入以下语句:
android { ... sourceSets { main { jniLibs.srcDirs = ['libs'] } } }
5,配置 AndroidManifest.xml
权限添加
要使用百度地图,需要额权限可不少,权限需添加到清单文件中AndroidManifest.xml中,需要的权限有
<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
服务添加
需要添加一个百度的远程服务到清单文件中的application中
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
</service>
添加秘钥
秘钥也是在清单文件中的application中添加
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="your api-key" />