android: 在APP中顯示高德地圖SDK

1、搭建環境
1)新建一個工程;
2)到高德開放平臺申請key,
    
    其中獲取調試版sha1能夠參考: http://lbs.amap.com/api/android-sdk/guide/create-project/get-key 
    可是發佈版的SHA1則要參考: http://blog.csdn.net/wf632856695/article/details/51193885 
    不然後面發佈release版本的apk以後運行會報錯誤碼爲1008的異常

3)在AndroidManifest.xml的application標籤內添加,這裏的your key就要用上一步申請的高德的key替換
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="your key" />
<service android:name="com.amap.api.location.APSService" >
4)在AndroidManifest的manifest元素內添加以下權限:
<!--用於進行網絡定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用於訪問GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用於獲取運營商信息,用於支持提供運營商信息相關的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用於訪問wifi網絡信息,wifi信息會用於進行網絡定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--用於獲取wifi的獲取權限,wifi信息會用來進行網絡定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用於訪問網絡,網絡定位須要上網-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用於讀取手機當前的狀態-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--用於寫入緩存數據到擴展存儲卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--用於申請調用A-GPS模塊-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用於申請獲取藍牙信息進行室內定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
5)在Project的build.gradle的以下位置添加以下代碼:
android{
        defaultConfig{
             ndk{
        //設置支持的SO庫架構(開發者能夠根據須要,選擇一個或多個平臺的so)
         abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","arm64-v8a","x86_64"
    }    
    }    
}
6)在Project的build.gradle的以下位置添加以下代碼,只關注高亮部分。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
//3D地圖so及jar
compile 'com.amap.api:3dmap:latest.integration'
//定位功能
compile 'com.amap.api:location:latest.integration'
//搜索功能
compile
'com.amap.api:search:latest.integration'

testCompile 'junit:junit:4.12'
}
7)在Project的build.gradle的以下位置添加以下代碼,只關注高亮部分。

2、寫代碼
 
 
如下內容參考:http://lbs.amap.com/api/android-sdk/guide/create-map/show-map 
1)在activity_main.xml文件內添加
<com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2)將MainActivity.java的內容改成以下
public class MainActivity extends Activity { MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取地圖控件引用 mMapView = (MapView) findViewById(R.id.map); //在activity執行onCreate時執行mMapView.onCreate(savedInstanceState),建立地圖 mMapView.onCreate(savedInstanceState); } @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(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); //在activity執行onSaveInstanceState時執行mMapView.onSaveInstanceState (outState),保存地圖當前的狀態 mMapView.onSaveInstanceState(outState); } }
相關文章
相關標籤/搜索