• android 百度地图入门01 (史上最详没有之一)


    最近一直和百度地图打交道,写几篇博客记录一下吧,目前最新版是4.0的 ,之前我用的是3.7的, 就以4.0的为例说一下最基本的配置流程吧.

    一.准备工作

    1.申请一个百度地图开发者账户--地址:https://passport.baidu.com/v2/?reg&regType=1&tpl=mn&u=http://lbsyun.baidu.com/

    2.申请一个应用--地址:http://lbsyun.baidu.com/apiconsole/key

    申请应用需要用到sha1 值和包名 -- 此处开发工具以Android Studio为准, sha1 和包名获取如下(我用的是非debug.jks ,直接用发布版的jks)

    1>sha1值获取要有 xx.jks文件, 对应eclipse端的 xx.keystore文件

    xx.jsk创建步骤如图 (如果你之前创建过,直接拿来直接使用,此处是新建步骤)

          

    输入的名字,比如traffic,根据需要自行输入,然后点击 OK ,返回到第3张图, 这里输入密码, 别名,以及 First and Last Name 其他的就不用输入了,没啥用.直接ok至此 xxx.jks创建完成.

    2>获取发布版的sha1值,截图吧,图中有步骤

      然后回车,提示输入密码, 就是你刚才创建xx.jks时输入的密码,输入密码回车得到如下图

     鼠标"右键",选中SHA1 然后 Ctrl+C 拷贝 

    3.使用 sha1 和工程包名

    点击"创建应用" --> 输入"应用名字" -->选中"Android SDK" 下面会有 让你填写SHA1  和包名的地方,把刚才拷贝的SHA1弄进去, 不需要去掉冒号,也不需要大写改成小写,原封不动拷贝.  包名的获取需要注意的地方,如果是Eclipse开发工具直接无视下面的截图

    Android studio 以截图包名为准, 不要以 AndroidManifest.xml为准,因为它俩可能不一样. 考第一次截这么多图 ,我都崩溃了.继续崩溃下去吧~~~

    二.工程的配置

    1.把百度地图sdk先关 jar 和 so包拷贝到工程  (在project模式下 , 拷贝jar包到libs, 在main 下创建jniLibs文件夹,把so文件所在包名全部拷贝进去,注意一点版本要和jar版本对应, 比如全部是4_0_0 ,或者全部是 3_7_1,不要混用)

    2.AndroidManifest.xml的配置  (2个步骤,代码已给出) 那个AK值就是

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.zcq.traffic">
    
        <!--AppApplication 是我自定义的全局Application-->
        <application
            android:name=".AppApplication" 
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <!--百度地图配置第1步,引入开发者秘钥,就是应用AK值-->
            <meta-data
                android:name="com.baidu.lbsapi.API_KEY"
                android:value="oL7xrlilyHPmNRbrPROpLtXSF2u1oMiw" />
    
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
        <!--百度地图开发第2步,引入所需权限-->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
        <uses-permission android:name="android.permission.WAKE_LOCK"/>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    
    </manifest>

    3.activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    
        <!--第3步,引入显示地图的控件-->
        <com.baidu.mapapi.map.MapView
            android:id="@+id/mapView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true" />
    </RelativeLayout>

    3.自定义AppApplication

    public class AppApplication extends Application {
    
        /**
         * 百度地图第4步,初始化全局sdk对象, 最好放到自定义Application中,不容易出错
         */
        @Override
        public void onCreate() {
            super.onCreate();
            //在使用SDK各组件之前初始化context信息,传入ApplicationContext
            //注意该方法要再setContentView方法之前实现
            SDKInitializer.initialize(getApplicationContext());
        }
    }

    4.MainActivity.java

    public class MainActivity extends AppCompatActivity {
    
        private MapView mMapView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //百度地图第5步,显示地图
            mMapView = (MapView) findViewById(R.id.mapView);
        }
    
        //下面是几个生命周期方法,
        @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();
        }
    }

    3.运行效果图

    5.源码:https://yunpan.cn/cRMvR2cg6bE7Z  访问密码 e3d3

  • 相关阅读:
    树形DP 统计树中长度为K的路径数量——Distance in Tree
    Linux下使用Vi是方向键变乱码 退格键不能使用的解决方法
    wikioi 1029 中序遍历总数
    struts2前端页面读取Clob/BLOB
    hdu 1712 ACboy needs your help
    HDU 2489 Minimal Ratio Tree (dfs+Prim最小生成树)
    用XMLRPC开服务进行server/client通信
    HDU 1171 Big Event in HDU
    VS2012调试执行,网页打不开
    解决安装OpenShift Client Tools时提示的dl/import (LoadError)问题
  • 原文地址:https://www.cnblogs.com/android-zcq/p/5595809.html
Copyright © 2020-2023  润新知