在iteye上已经有很久一段时间没有更新博客了,希望能把这半年内做Android开发的一些经验分享给大家。也作为抛砖引玉吧。
此项目是我的毕业设计 GPS旅游自助导游系统。采用的是BaiduMap。通过整理一步步实现完整的系统。初入Android行业,高手勿喷!
目前新版的百度地图,和之前的版本有了很大差别,首先来说如何申请key吧。
具体的申请方式可以参加BaiduMap的官方网址 和pdf文档 我会上传在附件中:这里主要说说我申请之后碰到的问题和心酸历程吧!已经有了的东西不再重造车轮
首先 key的申请中要注意几个问题:我申请完了之后,发现地图是白格子,这个是经常碰到的问题:最有可能的问题还是你的key没有申请对!
申请Key的时候:key有两部分组成 安全提示码+程序的包名。安全提示码有2种途径进行查看:
1 在eclipseADT中查看 点击 window-Preference- 在左侧的树状菜单中选择 Android下的 Build 就可以看到以下的安全码 选择 SHA1 fingerprint
2 BaiduMap的Key 是由安全码再加;再加你开发的程序包名 包名的查看你可以到Android应用程序下的配置文件 AndroidManifest.xml 下查看
这样key就申请完了。
然后提交到百度api 控制台
然后不要忘记掉给应用程序的配置文件 里添加相关的网络访问权限和屏幕自适应的权限
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <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_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" > </uses-permission> <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" > </uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" /> <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? --> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.CAMERA" > </uses-permission> <uses-permission android:name="android.permission.RECORD_AUDIO" > </uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- 来电消音 --> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" > </uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" />
这样你就可以使用百度地图来开发自己的程序了 下面写一个demo
首先你要做一张布局页面 test.xml 在给xml页面命名的时候也不要忘记了xml页面命名是小写的
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </LinearLayout>
在加载地图渲染之前 首先要加载地图管理类
地图管理类 已经放在了ApplicationDemo中 代码如下 :
public class DemoApplication extends Application { private static DemoApplication mInstance = null; public boolean m_bKeyRight = true; public BMapManager mBMapManager = null; @Override public void onCreate() { super.onCreate(); mInstance = this; initEngineManager(this); } public void initEngineManager(Context context) { if (mBMapManager == null) { mBMapManager = new BMapManager(context); } if (!mBMapManager.init(new MyGeneralListener())) { Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "BMapManager 初始化错误!", Toast.LENGTH_LONG).show(); } } public static DemoApplication getInstance() { return mInstance; } // 常用事件监听,用来处理通常的网络错误,授权验证错误等 public static class MyGeneralListener implements MKGeneralListener { @Override public void onGetNetworkState(int iError) { if (iError == MKEvent.ERROR_NETWORK_CONNECT) { Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "您的网络出错啦!", Toast.LENGTH_LONG).show(); } else if (iError == MKEvent.ERROR_NETWORK_DATA) { Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "输入正确的检索条件!", Toast.LENGTH_LONG).show(); } // ... } @Override public void onGetPermissionState(int iError) { //非零值表示key验证未通过 if (iError != 0) { //授权Key错误: Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "请在 DemoApplication.java文件输入正确的授权Key,并检查您的网络连接是否正常!error: "+iError, Toast.LENGTH_LONG).show(); DemoApplication.getInstance().m_bKeyRight = false; } else{ DemoApplication.getInstance().m_bKeyRight = true; Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "key认证成功", Toast.LENGTH_LONG).show(); } } } }
其实到了这一步 ,你还缺少一步 :要在Android的配置文件中设定启动的Activity的名字 TestBaiduMapActivity设置为启动项
这样此程序就可以在你的手机上跑起来了
相关推荐
在Android平台上进行百度地图开发是一项常见的任务,尤其对于构建具有定位、导航、地图展示等功能的移动应用来说至关重要。本文将深入探讨如何利用Android SDK和百度地图API进行开发,并结合源码分析来阐述关键知识...
**百度地图SDK开发详解** 百度地图SDK是一款由百度公司提供的地图服务开发工具,它允许开发者在自己的应用程序中集成百度地图的功能,包括定位、路线规划、地理编码、地图展示等。这款开发包为Android平台提供了...
《BaiduMap_AndroidSDK_v2.1.3开发包详解》 BaiduMap_AndroidSDK_v2.1.3是一款由百度地图提供给开发者用于在Android平台上构建地图应用的开发工具包。这个版本的SDK提供了丰富的功能,帮助开发者集成地图、定位、...
《BaiduMap Demo详解——构建高效地图应用》 在移动应用开发中,地图功能是不可或缺的一部分,尤其是在Android平台上。BaiduMap Demo是一个专门为开发者提供的示例项目,它涵盖了使用百度地图API在Android应用中...
在IT行业中,"baiDuMap开发"涉及到的是利用百度地图API进行第三方软件的开发工作。这个主题涵盖了多个方面的知识,包括但不限于地图展示、定位服务、路线规划、地理编码与反地理编码、覆盖物操作以及地图事件处理等...
在“BaiduMapsApiDemo”中,开发者可以看到如何申请并使用百度地图API的Key。首先,你需要在百度地图开放平台注册账号,创建一个新的应用,并获取到该应用的API密钥。这个密钥会在应用中用于验证请求的合法性,确保...
Android SDKv2.1.2 ,包括BaiduMap_AndroidSDK_v2.1.2_Docs,BaiduMap_AndroidSDK_v2.1.2_Lib和BaiduMap_AndroidSDK_v2.1.2_Sample ,这是以前的版本,现在新版2.1.3的KEY申请规则变了
1. 添加依赖库:BaiduMap_AndroidSDK_v3.5.0_Lib.zip包含了所有必要的jar包,开发者需要将其解压并导入到项目的libs目录下。在Android Studio中,需要在项目的build.gradle文件中添加对应的依赖引用,通常为`...
baidumap.html
4. **Android SDK(如果适用)**:如果是为Android平台开发,会涉及到Android的Activity、Fragment、布局文件、权限申请等知识。 5. **地图显示与操作**:如何初始化地图,设置地图级别、中心点,添加标注、覆盖物等...
BaiduMapsApiDemo 但是导入Eclipse后要 修改在AndroidManifest中 修改value值 key值在百度账号中申请。 android:value="请输入 Key" /
1. **百度地图API**:百度地图API是百度提供的一套用于开发地图应用的服务接口,它允许开发者在自己的应用中嵌入地图,进行地图的显示、缩放、平移等操作,并且可以实现定位、路径规划等功能。版本号`v3_5_0`表示这...
【百度地图API开发】在Android应用中集成百度地图SDK是一个常见的需求,这涉及到一系列的配置和设置步骤。首先,要使用百度地图API,你需要在百度的开发者网站(http://developer.baidu.com/map)上注册并申请一个...
通过调用`mapView.getMap()`获取`BaiduMap`对象,设置地图类型、缩放级别等属性。 3. **定位功能** 百度地图SDK提供了定位服务,通过`LocationClient`类来实现。注册`OnMyLocationChangeListener`监听器,可以获取...
《详解BaiduMap_AndroidSDK_v3.6.0及其主要变化》 在移动应用开发领域,地图服务扮演着至关重要的角色,其中百度地图SDK因其强大的功能和易用性深受开发者喜爱。本文将深入探讨BaiduMap_AndroidSDK_v3.6.0版本的...
"baidumap_js_offline_V3.0" 是一个特别针对离线环境设计的百度地图JavaScript库,允许开发者在没有网络连接的情况下依然能够展示和操作地图。 首先,我们来了解一下什么是百度地图JavaScript API V3.0。这是百度...
1. 地图渲染:BaiduMap_AndroidSDK_v3.5.0支持2D和3D地图显示,可以自定义地图风格,如卫星图、地形图等。开发者可以通过设置地图层级、缩放、旋转和平移来实现地图的动态展示。 2. 点标记与覆盖物:SDK提供了在...
1. **定位服务**:在开发基于位置的应用时,获取城市中心的经纬度可以帮助用户快速定位到城市的核心区域。 2. **地理分析**:研究人员可以通过这些数据进行城市规划、交通分析、人口分布等领域的研究。 3. **地图...
在移动开发领域,地图服务是不可或缺的一部分,尤其在Android平台上,百度地图SDK以其强大的功能和易用性深受开发者喜爱。本文将详细介绍百度地图Android SDK v3.6.1的相关知识点,包括其核心组件、主要功能以及如何...
不同的功能需要申请不同的权限,因此在实际使用时,最好参考百度的SDK文档。 其次,在Android 6.0以后引入了运行时权限,因此有些权限需要在代码中进行判断和申请。 4.2、添加AK信息 在应用的AndroidManifest.xml...