很久沒寫博客了,最近遇到個新需求 須要用到百度地圖的基礎地圖,定位,理論上應該還會用到鷹眼的功能吧.具體還很難說.我如今html
剛動工,就從頭開始記錄吧.java
首先是先申請一個百度地圖api的key 流程官網很詳細我就很少說了.(linux 系統下android studio 獲取SHA1:個人博客 http://www.cnblogs.com/wobeinianqing/p/5594694.html ,官網也有介紹)linux
申請完了key之後下載好相關包(在開發那個tab下有個相關下載)android
選擇好須要的功能之後就能夠下載了:編程
完成後解壓出來通常是一個jar文件合幾個對應不一樣cpu架構的文件夾內部是一堆.os文件api
建立一個android 工程在文件的(progect視圖) app/libs 文件下考入jar文件 而後選中jar包 右鍵選擇add as library...網絡
而後在 app/src/main/ 目錄下建立 jniLibs 文件夾 拷入上面的幾個文件夾架構
完成後目錄結構以下:app
下面就能夠開始正式進入編程模式了!ide
能夠參考百度地圖api hello baidumap 部分
首先是activity_main.xml (引入MapView)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.zfls.findme.MainActivity" tools:showIn="@layout/app_bar_main"> <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </RelativeLayout>
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(); mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); mMapView.onResume(); } @Override protected void onPause() { super.onPause(); mMapView.onPause(); } }
這樣就已經可實現了地圖的展現功能了.
下面爲app添加必要權限
<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" />
添加本身的key
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="你的 key" />
總體效果:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zfls.findme"> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <!-- 這個權限用於進行網絡定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 這個權限用於訪問GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用於訪問wifi網絡信息,wifi信息會用於進行網絡定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 獲取運營商信息,用於支持提供運營商信息相關的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_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.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" 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" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
下面插上手機run 一下體驗下本身的地圖吧!
啥?爲啥中間是北京?下節咱們來換掉它!