最简单的百度地图api安卓编程详解(Eclipse)

编程知识 更新时间:2023-04-30 00:43:21

引言:

   本菜菜发现好多关于百度地图开发的文章都写得不够具体, 至少我是不可避免的进了好几个坑,遂总结后写了这篇博客,尽我所能详言之,为后来人填坑。

本篇是对安卓应用内百度地图开发基础实现的详细介绍,想了解复杂功能的可以先撤了。

一、下载开发包

    地址:http://lbsyun.baidu/index.php?title=androidsdk/sdkandev-download

    选择你想要的功能,下载后解压

注意事项:有的选项无法正常解压,会提示压缩包损坏,没关系,这不是你的问题,换一下选项试试或者下载默认的选项。

二、新建项目

    查看项目SHA1:点击Window--〉Preferences--〉Android--〉Build--〉你就看到了,好长一串

    查看项目包名:查看manifest文件 --〉<manifest................. package="你的包名"........................ >                     </manifest>

三、获取密钥(即AK)

    地址:http://lbsyun.baidu/index.php?title=androidsdk/sdkandev-download

    点击获取密钥>>后新建应用,按要求填写项目SHA1包名,提交后即可获得密钥

四、配置、混淆

  1、配置

     把开发包里的armeabi文件夹(里面是so文件)和BaiduLBS_Android.jar文件复制到libs文件夹下(so文件和jar文件要尽量用同一版本的)。

     在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定BaiduLBS_Android.jar,确定后返回。

     clean --〉Build后您就可以正常使用了。还不行的话就重启一下开发环境(针对像我一样电脑卡的人)。

    最后效果大概就是这样:(本人不能截图,网图与实际内容有差异,将就着看吧,armeabi文件夹下可能不止一个文件)

  2、混淆   

    集成地图SDK的应用,在打包混淆的时候,需要注意与地图SDK相关的方法不可被混淆。

    混淆方法:在项目的根目录下的proguard_project.txt文件中添加如下所示:

#-keep class com.baidu.** {*;}
#-keep class vi.** {*;}    
#-dontwarn com.baidu.**

    注意:保证百度类不能被混淆,否则会出现网络不可用等运行时异常。

    另:第二句有争议,有人用  #-keep class mapsdkvi.** {*;} 才管用 。

五、实现

     新建你自己的Application(爱叫啥叫啥,百度文档就叫DemoApplication),如下所示(copy就行):

public class DemoApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext   
        SDKInitializer.initialize(this);
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }
}

     DemoApplication建好了,用在manifest文件里(注意你新建DemoApplication的路径),同时把你的密钥添加进去,如下所示:

<application
    android:name="com.example.DemoApplication"
    ......
    ......
    >  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="**你获得的密钥粘贴进来**" />  
</application>

     在manifest文件添加权限(加在application外面):

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
//获取设备网络状态,禁用后无法获取网络状态
<uses-permission android:name="android.permission.INTERNET"/> 
//网络权限,当禁用后,无法进行检索等相关业务
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
//读取设备硬件信息,统计数据
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 
//读取系统信息,包含系统版本等信息,用作统计
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
//获取设备的网络状态,鉴权所需网络代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
//获取统计数据
<uses-permission android:name="android.permission.CAMERA" />  
//使用步行AR导航,配置Camera权限

     在布局xml文件中添加地图控件:

<com.baidu.mapapi.map.MapView  
    android:id="@+id/imap"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:clickable="true" />

     创建地图,并管理生命周期:

public class MainActivity extends Activity {  
    private MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.imap);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
        }  
    }

六、你以为的结束?

    本篇到这里就结束了<*开心*>,不出意外的话可以显示了,应该是没有漏掉哪一步......

    毕竟篇幅太长了,漏掉了的话欢迎小伙伴们帮忙查漏补缺

更多推荐

最简单的百度地图api安卓编程详解(Eclipse)

本文发布于:2023-04-22 08:31:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/ffe8a5e5f8933385f1ff657e46475a45.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最简单   详解   地图   api   Eclipse

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 95566文章数
  • 24068阅读数
  • 0评论数