Android Studio 百度地图开发

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


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


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


Android Studio 百度地图开发_第1张图片

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

Android Studio 百度地图开发_第2张图片

Android Studio 百度地图开发_第3张图片

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

点击提交,生成:

Android Studio 百度地图开发_第4张图片


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


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

Android Studio 百度地图开发_第5张图片


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

Android Studio 百度地图开发_第6张图片


Android Studio 百度地图开发_第7张图片

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


解压Lib.zip,得到:

Android Studio 百度地图开发_第8张图片


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

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

Android Studio 百度地图开发_第9张图片


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

Android Studio 百度地图开发_第10张图片


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


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

Android Studio 百度地图开发_第11张图片


弹出如下:

Android Studio 百度地图开发_第12张图片

点击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();  
        }  
    }

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

Android Studio 百度地图开发_第13张图片



你可能感兴趣的:(android,android,百度地图,Studio)