Android版本百度地图开发(一)——创建应用
来源:互联网 发布:电商网站模板源码 编辑:程序博客网 时间:2024/06/10 00:54
百度地图在Android开发中的应用前景还是蛮广泛的,所以这个系列将比较完整的讲解百度地图SDK的使用。
1 创建应用步骤
这一章我们讲讲利用百度地图时一般的应用创建步骤。前提是我们已有了一个Android工程。
1.1 获取密钥
自从2.3.1版本后,百度地图使用了新的密钥系统。我们这里以最新版本的密钥系统进行演示。
- 首先我们去http://developer.baidu.com/map/sdk-android.htm,找到获取密钥,期间需要登录你自己的百度帐号。
- 点击“创建应用”,之后输入应用名称、应用类型(这里是for mobile)、安全码(这里是"数字签名+;+包名");
- 这里的数字签名通过Eclipse->Preference->Android->Build中的SHA-1得到;
- 获得的密钥纪录下来后备用;
1.2 拷贝文件
接下来我们将所需要的库文件拷贝到工程中。
- 去http://developer.baidu.com/map/sdkandev-download.htm下载所有sdk文件包,我这里得到的是BaiduMap_AndroidSDK_v2.3.1_All.zip;
- 接下来找到压缩包中的baidumapapi_v2_3_1.jar,将其拷贝到libs根目录;
- 找到压缩包中的libBaiduMapSDK_v2_3_1.so文件,将其拷贝到libs/armeabi目录;
- 在Eclipse的Build Path中,对于Order and Export,将"Android Private Libraries"选中,然后Project->Clean;
- 至此,拷贝文件工作完成;
1.3 修改Manifest.xml文件
对于工程需要增加网络、定位等权限,这里我们拷贝下面这段到Manifest.xml文件中:
<!-- 使用网络功能所需权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission> <!-- SDK离线地图和cache功能需要读写外部存储器 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <!-- 获取设置信息和详情页直接拨打电话需要以下权限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <uses-permission android:name="android.permission.CALL_PHONE" > </uses-permission> <!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" > </permission> <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_GPS" />
注意:我这里添加了以上权限后实际运行时还需要添加一个android.permission.WRITE_SETTINGS权限。
同时我们需要一个Activity显示我们的Map界面,所以我们添加一个Activity:
<!-- BaiduMap测试 --> <activity android:name="com.freesoft.activity.baidu.BaiduMapActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="sensor" > </activity>
当然还要添加屏幕和sdk版本的支持选项:
<supports-screens android:largeScreens="true"android:normalScreens="true"android:smallScreens="true"android:resizeable="true"android:anyDensity="true"/> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />
1.4 添加布局文件
由于是一个简单的工程,我们的布局文件是这个样子滴:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello world" /> <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /></LinearLayout>
1.5 Activity类代码
最重要的Activity代码来了:
public class BaiduMapActivity extends Activity {private BMapManager mBMapMan = null;private MapView mMapView = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBMapMan=new BMapManager(getApplication());mBMapMan.init("这里填入你自己申请的Key", null); //注意:请在试用setContentView前初始化BMapManager对象,否则会报错setContentView(R.layout.activity_baidumap);mMapView=(MapView)findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件MapController mMapController=mMapView.getController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(12);//设置地图zoom级别}// 重写activity生命周期方法以对mapview和map manager进行管理@Overrideprotected void onDestroy(){ mMapView.destroy(); if(mBMapMan!=null){ mBMapMan.destroy(); mBMapMan=null; } super.onDestroy();}@Overrideprotected void onPause(){ mMapView.onPause(); if(mBMapMan!=null){ mBMapMan.stop(); } super.onPause();}@Overrideprotected void onResume(){ mMapView.onResume(); if(mBMapMan!=null){ mBMapMan.start(); } super.onResume();}}
注意:上面的代码需要替换你自己申请的密钥和你的layout。
- Android版本百度地图开发(一)——创建应用
- Android版本百度地图开发(一)——创建应用
- (一)Android百度公交开发—如何在Android应用中使用百度地图api
- Android版本百度地图开发(四)——定位
- Android版本百度地图开发(四)——定位
- Android百度公交开发(一)——如何在Android应用中使用百度地图api
- Android开发-百度地图(一)——准备
- Android入门之——百度地图开发(一)
- 百度地图应用开发(一)
- 百度地图应用开发(一)
- 百度地图SDK开发,版本V3.0.0(一)——概述
- 百度地图开发(一)——地图定位
- Android 百度地图开发(一)
- Android开发---百度地图(一)
- Android百度地图开发(一)
- Android百度地图开发(一)
- Android百度地图开发(一)
- Android百度地图——定位SDK(版本v3.1)(一)
- opncv2.4.3 SIFT编译出错
- MP4 esds box解析
- test4-3(fibonacci序列)
- android错误:Unable to execute dex: java.nio.BufferOverflowException.Check
- MyEclipse设置Java代码注释模板
- Android版本百度地图开发(一)——创建应用
- Oracle to_date(...)函数相关
- 你对公司的影响力
- fedora设置开机自动启动应用程序
- Tomcat、JBOSS、WebSphere、WebLogic、Apache之间的区别
- iOS官网问答:Detecting the Debugger(判断是否处于联机调试)
- hdu 4052 Adding New Machine 扫描线求矩形面积并
- 从插件/RCP中取得文件路径的方法
- Oracle 触发器练习