android开发百度地图
2016-07-06 14:40
537 查看
转载请注明出处:http://blog.csdn.net/sw950729/article/details/51838779
本文出自:马云飞的博客
今天早上稍微研究了下百度地图。代码很少。不过需要密钥。
先甩地址把:http://lbsyun.baidu.com/apiconsole/key
去创建一个属于自己的项目的密钥。
应用类型写Android SDk
名称随便填
这里主要说下SHA1
1.debug.keystore不存在(今天我就是,做如下操作)
在cmd下,进入C:\Users\Administrator.android目录执行命令如下:
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
最后确定的话,输入中文“是”ok。会让你确定的。
好了。现在我们的debug.keystore存在了。
现在做如下操作:
在.android目录下,输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android,刚才创建有让你自己设置)
好了。然后在平台里输入你的sha1生成一个可访问的AK。
现在在mainfest.xml添加如下东西:
1.权限:
2.密钥
这样所有的设置就完成了。布局文件如下:
activity代码很简单:
这样一个百度地图的demo就完成了~~~。but:
在某种情况会出现:Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
就是demo里面只有网格。你看不到地图。解决方案很简单。
找到你的apk文件,把后缀改成zip然后解压。里面会有个META-INF的文件夹,里面有一个CERT.RSA
好了。重点来了。在android studio的最下面有一个terminal。如果没有话在File—settings—plugins下面找到Terminal。打勾就出来了。
在这里打开你刚才解压的目录,执行如下操作:
好了。这和之前在cmd里执行一样的,但你会发现你现在的SHA1和之前的不一样了。好了去平台上以这个SHA1新建一个应用得到它的AK就可以正常显示地图了。
如果有什么地方不理解的话,或者哪边有错误的话可以提出来,毕竟我也是今天刚刚接触百度地图这个东西。
好了。今天就说到这把,我的android交流群:232748032。欢迎新朋友的加入。
本文出自:马云飞的博客
今天早上稍微研究了下百度地图。代码很少。不过需要密钥。
先甩地址把:http://lbsyun.baidu.com/apiconsole/key
去创建一个属于自己的项目的密钥。
应用类型写Android SDk
名称随便填
这里主要说下SHA1
1.debug.keystore不存在(今天我就是,做如下操作)
在cmd下,进入C:\Users\Administrator.android目录执行命令如下:
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
最后确定的话,输入中文“是”ok。会让你确定的。
好了。现在我们的debug.keystore存在了。
现在做如下操作:
在.android目录下,输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android,刚才创建有让你自己设置)
好了。然后在平台里输入你的sha1生成一个可访问的AK。
现在在mainfest.xml添加如下东西:
1.权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <uses-permission android:name="android.permission.READ_LOGS"></uses-permission> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
2.密钥
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="IEGgIhWlUfkTVNafbgXVrgow4Z4r9clB" /> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
这样所有的设置就完成了。布局文件如下:
<?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:layout_width="match_parent" android:layout_height="match_parent" tools:context="sw.angel.baidumap_demo.MainActivity"> <com.baidu.mapapi.map.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true"></com.baidu.mapapi.map.MapView> </RelativeLayout>
activity代码很简单:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // 在使用SDK各组件之前初始化context信息,传入ApplicationContext // 注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); // 获取地图控件引用 map = (MapView) findViewById(R.id.map); BaiduMap = map.getMap(); //普通地图 BaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); } @Override protected void onDestroy() { super.onDestroy(); // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 map.onDestroy(); map = null; } @Override protected void onResume() { super.onResume(); // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 map.onResume(); } @Override protected void onPause() { super.onPause(); // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 map.onPause(); }
这样一个百度地图的demo就完成了~~~。but:
在某种情况会出现:Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
就是demo里面只有网格。你看不到地图。解决方案很简单。
找到你的apk文件,把后缀改成zip然后解压。里面会有个META-INF的文件夹,里面有一个CERT.RSA
好了。重点来了。在android studio的最下面有一个terminal。如果没有话在File—settings—plugins下面找到Terminal。打勾就出来了。
在这里打开你刚才解压的目录,执行如下操作:
好了。这和之前在cmd里执行一样的,但你会发现你现在的SHA1和之前的不一样了。好了去平台上以这个SHA1新建一个应用得到它的AK就可以正常显示地图了。
如果有什么地方不理解的话,或者哪边有错误的话可以提出来,毕竟我也是今天刚刚接触百度地图这个东西。
好了。今天就说到这把,我的android交流群:232748032。欢迎新朋友的加入。
相关文章推荐
- Android Studio如何快速生成get,set,tostring,构造函数
- Android 设计模式 笔记 - Intent信息树精确查找
- Android TextView 使用随机背景颜色的方法
- android 4000 CoordinatorLayout使用
- 实习杂记(28):Android不同层次开启硬件加速的方式
- Android自定义控件(介绍)一
- android listview源码解析
- android中的后退键——onBackPressed()的使用
- Android 绘制圆图片的三种个方法
- android系统自带的分享功能
- 如何使用Android的VectorDrawable类绘制矢量图
- NFC数据串口传输模块(NFC2COM)--风火轮
- Android xml文件里定义并获取string array,integer array,尺寸和颜色
- Android 常用 mimeType 表及用法
- Android studio中正确引入so文件的方法
- 爱码哥移动开发平台的4大开发环境
- Android ZBar bar code reader二维码
- Android绘制流程
- android 单例模式
- hello world(android volley)