Android Studio 百度地图开发

来源:互联网 发布:tc软件 编辑:程序博客网 时间:2024/05/18 01:26

本文只是简单介绍如何在Android Studio上实现百度地图开发


#############################################################


首先注册一个百度帐号,然后登录http://developer.baidu.com/map/index.php?title=androidsdk  ,点击左边获取密匙选项,填写一些信息,就已经注册成为百度开发者



点击创建应用选项,跳转到:



填写相应信息,其中应用类型为Android SDK,安全码为数字签名+;包名(如何获取数字签名请看http://blog.csdn.net/u012005313/article/details/48577751)

点击提交,生成:



########################################


创建一个项目BaiduMapTest,其中Package Name(包名)应该和之前创建应用时使用的包名相同



在http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download 上选择一键下载,得到百度地图的SDK开发包




解压下载得到的压缩包,得到


解压Lib.zip,得到:



其中的baidumapapi_v<版本号>.jar和libBaiduMapSDK_v<版本号>.so就是我们要使用的

将baidumapapi_v<版本号>.jar放入项目libs目录下:



在Main目录下新建jniLibs\armeabi(注意大小写)文件夹:



将libBaiduMapSDK_v<版本号>.so放入其中


右击libs\baidumapapi_v<版本号>.jar,选择Add As Library选项:



弹出如下:


点击OK


############################################################3


接下来为代码部分:

在AndroidManiFest.xml中添加开发密匙和所需权限:

<application>      <meta-data          android:name="com.baidu.lbsapi.API_KEY"          android:value="开发者 key" />  </application>


注意把开发者 key改为之前申请的API 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" />      <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.CHANGE_WIFI_STATE" />      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />      <uses-permission android:name="android.permission.READ_PHONE_STATE" />      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />      <uses-permission android:name="android.permission.BROADCAST_STICKY" />      <uses-permission android:name="android.permission.WRITE_SETTINGS" />      <uses-permission android:name="android.permission.READ_PHONE_STATE" />  

总代码为:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.baidumaptest" >    <!-- 百度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" />    <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.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.BROADCAST_STICKY" />    <uses-permission android:name="android.permission.WRITE_SETTINGS" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <meta-data            android:name="com.baidu.lbsapi.API_KEY"            android:value="开发者 key" />        <activity            android:name=".MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>



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

<com.baidu.mapapi.map.MapView      android:id="@+id/bmapView"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:clickable="true" />
总代码为:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <com.baidu.mapapi.map.MapView        android:id="@+id/bmapView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true" />    </LinearLayout> 

在应用程序创建时初始化SDK引用的Context全局变量:

public class MainActivity extends Activity {      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);           //在使用SDK各组件之前初始化context信息,传入ApplicationContext          //注意该方法要再setContentView方法之前实现          SDKInitializer.initialize(getApplicationContext());          setContentView(R.layout.activity_main);      }  }

注意:在SDK各功能组件使用之前都需要调用

SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中

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

MainActivity.java 总代码为:

public class MainActivity extends Activity {      MapView mMapView = null;      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);           //在使用SDK各组件之前初始化context信息,传入ApplicationContext          //注意该方法要再setContentView方法之前实现          SDKInitializer.initialize(getApplicationContext());          setContentView(R.layout.activity_main);          //获取地图控件引用          mMapView = (MapView) findViewById(R.id.bmapView);      }      @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();          }      }

完成以上步骤后,运行程序,即可看到地图:




0 0
原创粉丝点击