• Android 开发之集成百度地图的定位与地图展示


    app 应用中,大多数应用都具有定位功能,百度定位就成了开发人员的集成定位功能的首选,近期也在做定位功能,可是发现百度真是个大坑啊, sdk 命名更新了,相关代码却不更新,害得我花费了非常长时间来研究,今天来给大家分享下 Android 集成百度地图要注意的事情,这里仅仅是集成了定位和地图展示功能,其它功能还未涉及,先看下效果图:

    这里写图片描写叙述

    这里写图片描写叙述

    这里写图片描写叙述

    接下来介绍一下 Android 集成百度地图的步骤:
    首先登陆百度开发平台,在我的应用中创建应用,然后你会看到例如以下界面:

    这里写图片描写叙述

    依据它的要求填写相关信息,这里的安全是有 SHA1和包名组成的,将 SHA1和包名填写完毕之后会自己主动产生,报名肯定都知道怎样获得, SHA1的获取方式例如以下:(android studio)
    mac 版:
    打开 android studio 的 Terminal, 在里面输入命令行
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    按回车就可以会的 SHA1;
    window 版:
    WIN+R 打开“执行” 输入 CMD 回车
    CD C:Program FilesJavajdk1.7.0_71in (安装JDK路径)
    keytool -list -v -keystore c:usersyour_user_name.androiddebug.keystore -alias androiddebugkey -storepass android -keypass android
    比如:keytool -list -v -keystore c:usersAdministrator.androiddebug.keystore -alias androiddebugkey -storepass android -keypass androidand 然后就看到SHA1了
    假设实在不行,能够通过一个工具来获取,这个工具还能够检測你生成的 key 是否正确,点击获取工具

    该工具是我在网上找的,在这里感谢一下, 下载完毕并安装到手机里后,点击刚才安装的工具,它会将手机中的所用应用都检索出来,然后点击你要获取 key 的应用,出现例如以下画面:
    这里写图片描写叙述
    这里的 SHA1就是你想要的,而且还能够将你之后获得 key 加入到这里检測下是否正确
    点击提交以后你就会在你的应用列表中获取你要的 key 了.接下来就是看下怎样将百度地图集成到你的项目中.
    进入首页-以下的 android 开发-任一个功能-左下角的相关下载-自定下载,会出现例如以下界面:
    这里写图片描写叙述
    你想要集成什么功能,就把哪个功能选中,在这里选择下载开发包,开发包里有你要集成相关功能的 jar 包,本人不建议下载演示样例代码,就像我开篇提到的,百度地图的sdk 已经更新了,可是演示样例代码还是旧版本号的,假设你參考演示样例代码,会给你带来非常大的误导的!!!!
    将你刚才下载下来的开发包里面的东西复制粘贴到你项目中的 libs 下, 假设你用的 android studio 千万别忘了要在 build下加入

    sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }

    然后就是配置你的 manifest 文件:
    首先是权限:

    <!-- 这个权限用于进行网络定位-->
        <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>

    然后是百度地图的服务:

    <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"/>

    最后一个最重要的是配置特有的 key,

    <meta-data
                android:name="com.baidu.lbsapi.API_KEY"
                android:value="" /> //key:开发人员申请的key

    将你刚才在百度平台上获取的key 加入到这里就可以
    接下来就是在 Demo 中进行定位与地图展示,在我的 demo中写的非常具体了,相关凝视也有,能够下载下来看下,这里不再赘述,要注意的是在集成地图展示的功能时,发现执行会报错,那是由于没有初始化:

    SDKInitializer.initialize(getApplicationContext());

    而且该方法要加入在 setContentView() 方法的前面才有效,所以我们选择将该方法加入到 application中就可以.
    QQ技术交流群:190088567
    项目下载地址:
    http://download.csdn.net/detail/xiaoxin_android/9493348

  • 相关阅读:
    Python基础知识篇
    Django框架
    Django REST Framework框架
    NoSQL
    MySQL恩恩怨怨
    Python奇技淫巧
    一文搞定Flask
    数据结构与算法(Python)
    学习数据分析
    项目杂项
  • 原文地址:https://www.cnblogs.com/llguanli/p/8447354.html
Copyright © 2020-2023  润新知