android下百度地图开发

本文详细介绍了在Android开发中如何使用百度地图服务,包括创建项目、申请API密钥、添加地图引擎、配置权限、显示地图控件以及初始化地图引擎等关键步骤。通过遵循此指南,开发者可以快速实现地图功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android开发中经常会使用到地图服务,下面简易的介绍下,android下百度地图的基本开发流程,写的不好的地方请大神们多多指教. 第一步:创建好项目
创建好自己项目,项目的包名要记下来,例如我的包名就是:cn.baidumap.mymap
第二步:申请一个key值
网址是: http://developer.baidu.com/map/android-mobile-apply-key.htm
申请key需要应用程序的包名和数字签名(SHA1);
包名第一步已经得到了,
SHA1值的获取办法:
1.打开命令行输入cd .android 进入到android签名目录 如:C:\Users\lenovo.android
2.输入命名: “C:\Program Files\Java\jdk1.6.0_45\bin\keytool.exe”(前面是jdk的安装目录中的keytool.exe) -list -v -keystore debug.keystore 密码是android
获取SHA1值得办法
获取到SHA1值
3.最后生成的内容为:
申请key值
第三步:添加地图引擎到Andoid工程中
找到需要的jar包,然后导入到项目的libs下;
需要导入的jar包
注意:如果用虚拟机运行的话只能在CPU为arm上运行X86的运行不起来;
第四步:在清单文件(AndroidManifest.xml)中配置key信息
在application下添加
    <meta-data
        android:name="com.baidu.lbsapi.API_KEY"
        android:value="在第二步生成的key" />`
第五步:需要添加的权限
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<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" />
<!-- SD卡读取权限,用户写入离线定位数据-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<!--允许应用读取低级别的系统日志文件 -->
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
第六步:在布局中显示地图控件
<com.baidu.mapapi.map.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
第七步:在activity代码中,首先要初始化地图引擎 效验KEY;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化地图和效验key及网络连接状态;
initSDK();
setContentView(R.layout.common);
init();
}
    /**
     * 初始化地图和效验key及网络连接状态;
     */
    private void initSDK() {
        // 初始化地图引擎 效验KEY;
        // 注意这里传入的参数需要是一个全局的上下文;
        SDKInitializer.initialize(getApplicationContext());
        //初始化地图引擎 效验KEY后开启一个广播接收者,接收定义的广播消息;
        IntentFilter filter = new IntentFilter();
filter.addAction("SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR");
filter.addAction("SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR");
        registerReceiver(new SDKBroadCast(), filter);
    }
/**
     * 定义一个广播接受者,用来接收验证KEY是否验证成功和网络连接情况; 
     */
     private class SDKBroadCast extends BroadcastReceiver{

        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if(action.equals("SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR")) {
                //网络错误的广播
                Log.i(TAG, "网络连接错误的广播");
                Toast.makeText(getApplicationContext(), "网络连接错误", 0).show();

            } else if(action.equals("SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR")) {
                //key 验证失败的广播
                Log.i(TAG, "key 验证失败的广播");
                Toast.makeText(getApplicationContext(), "key 验证失败", 0).show();
            }
        }
     }
第七步:把MapView的声明周期和Activity的声明周期绑定在一起;
在onCreate方法中:找到MapView;
MapView mapView = (MapView) findViewById(R.id.mapview);

然后用activity的声明周期来管理地图的声明周期;在activity的onResume、onPause、onDestory方法中分别执行mapview的onReusme、onPause、onDestory方法。

        @Override
        protected void onResume() {
            mapView.onResume();
            super.onResume();
        }

        @Override
        protected void onPause() {
            mapView.onPause();
            super.onPause();
        }

        @Override
        protected void onDestroy() {
            mapView.onDestroy();
            super.onDestroy();
        }

完成以上的步骤,一个简单的百度地图程序就做好了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值