`
qinweiping
  • 浏览: 131345 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

BaiduMap开发详解(1) 申请key

 
阅读更多

     在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设置为启动项  

这样此程序就可以在你的手机上跑起来了 

 

  • 大小: 75.2 KB
  • 大小: 51.9 KB
  • 大小: 61.1 KB
1
0
分享到:
评论

相关推荐

    android baidumap 开发 源码

    在Android平台上进行百度地图开发是一项常见的任务,尤其对于构建具有定位、导航、地图展示等功能的移动应用来说至关重要。本文将深入探讨如何利用Android SDK和百度地图API进行开发,并结合源码分析来阐述关键知识...

    百度地图baidumap开发包sdk

    **百度地图SDK开发详解** 百度地图SDK是一款由百度公司提供的地图服务开发工具,它允许开发者在自己的应用程序中集成百度地图的功能,包括定位、路线规划、地理编码、地图展示等。这款开发包为Android平台提供了...

    BaiduMap_AndroidSDK_v2.1.3开发包

    《BaiduMap_AndroidSDK_v2.1.3开发包详解》 BaiduMap_AndroidSDK_v2.1.3是一款由百度地图提供给开发者用于在Android平台上构建地图应用的开发工具包。这个版本的SDK提供了丰富的功能,帮助开发者集成地图、定位、...

    BaiduMap Demo

    《BaiduMap Demo详解——构建高效地图应用》 在移动应用开发中,地图功能是不可或缺的一部分,尤其是在Android平台上。BaiduMap Demo是一个专门为开发者提供的示例项目,它涵盖了使用百度地图API在Android应用中...

    baiDuMap开发

    在IT行业中,"baiDuMap开发"涉及到的是利用百度地图API进行第三方软件的开发工作。这个主题涵盖了多个方面的知识,包括但不限于地图展示、定位服务、路线规划、地理编码与反地理编码、覆盖物操作以及地图事件处理等...

    BaiduMap.zip_android_baiduMap_baidumap java_百度API

    在“BaiduMapsApiDemo”中,开发者可以看到如何申请并使用百度地图API的Key。首先,你需要在百度地图开放平台注册账号,创建一个新的应用,并获取到该应用的API密钥。这个密钥会在应用中用于验证请求的合法性,确保...

    BaiduMap_AndroidSDK

    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申请规则变了

    BaiduMap_AndroidSDK_v3.5.0_All

    1. 添加依赖库:BaiduMap_AndroidSDK_v3.5.0_Lib.zip包含了所有必要的jar包,开发者需要将其解压并导入到项目的libs目录下。在Android Studio中,需要在项目的build.gradle文件中添加对应的依赖引用,通常为`...

    baidumap.html

    baidumap.html

    BaiduMap.zip_baidumap java

    4. **Android SDK(如果适用)**:如果是为Android平台开发,会涉及到Android的Activity、Fragment、布局文件、权限申请等知识。 5. **地图显示与操作**:如何初始化地图,设置地图级别、中心点,添加标注、覆盖物等...

    百度 BaiduMap_AndroidSDK_v3.1.1_Sample

    BaiduMapsApiDemo 但是导入Eclipse后要 修改在AndroidManifest中 修改value值 key值在百度账号中申请。 android:value="请输入 Key" /

    百度地图BaiduMap

    1. **百度地图API**:百度地图API是百度提供的一套用于开发地图应用的服务接口,它允许开发者在自己的应用中嵌入地图,进行地图的显示、缩放、平移等操作,并且可以实现定位、路径规划等功能。版本号`v3_5_0`表示这...

    A0902百度地图BaiduMap1

    【百度地图API开发】在Android应用中集成百度地图SDK是一个常见的需求,这涉及到一系列的配置和设置步骤。首先,要使用百度地图API,你需要在百度的开发者网站(http://developer.baidu.com/map)上注册并申请一个...

    BaiDuMap例子

    通过调用`mapView.getMap()`获取`BaiduMap`对象,设置地图类型、缩放级别等属性。 3. **定位功能** 百度地图SDK提供了定位服务,通过`LocationClient`类来实现。注册`OnMyLocationChangeListener`监听器,可以获取...

    BaiduMap_AndroidSDK_v3.6.0_All.zip

    《详解BaiduMap_AndroidSDK_v3.6.0及其主要变化》 在移动应用开发领域,地图服务扮演着至关重要的角色,其中百度地图SDK因其强大的功能和易用性深受开发者喜爱。本文将深入探讨BaiduMap_AndroidSDK_v3.6.0版本的...

    baidumap_js_offline_V3.0

    "baidumap_js_offline_V3.0" 是一个特别针对离线环境设计的百度地图JavaScript库,允许开发者在没有网络连接的情况下依然能够展示和操作地图。 首先,我们来了解一下什么是百度地图JavaScript API V3.0。这是百度...

    BaiduMap_AndroidSDK_v3.5.0

    1. 地图渲染:BaiduMap_AndroidSDK_v3.5.0支持2D和3D地图显示,可以自定义地图风格,如卫星图、地形图等。开发者可以通过设置地图层级、缩放、旋转和平移来实现地图的动态展示。 2. 点标记与覆盖物:SDK提供了在...

    BaiduMap_cityCenter

    1. **定位服务**:在开发基于位置的应用时,获取城市中心的经纬度可以帮助用户快速定位到城市的核心区域。 2. **地理分析**:研究人员可以通过这些数据进行城市规划、交通分析、人口分布等领域的研究。 3. **地图...

    BaiduMap_AndroidSDK_v3.6.1_All.zip

    在移动开发领域,地图服务是不可或缺的一部分,尤其在Android平台上,百度地图SDK以其强大的功能和易用性深受开发者喜爱。本文将详细介绍百度地图Android SDK v3.6.1的相关知识点,包括其核心组件、主要功能以及如何...

    BaiduMap_AndroidSDK Sample_demo

    不同的功能需要申请不同的权限,因此在实际使用时,最好参考百度的SDK文档。 其次,在Android 6.0以后引入了运行时权限,因此有些权限需要在代码中进行判断和申请。 4.2、添加AK信息 在应用的AndroidManifest.xml...

Global site tag (gtag.js) - Google Analytics