Android接入高德地图SDK 二显示小蓝点
生成簽名文件
在工具欄點擊 Build 然后點擊 Generate Signed Bundle / APK…
選擇 APK
點擊 Next
我這是新建完了,如果第一次點Create new…
記住保存路徑和你設的密碼,點擊OK
點擊Next
選擇release 點擊Finish
獲取發布版安全碼SHA1
打開Android Studio的Terminal工具
cd 進入你剛剛保存的簽名文件路徑
keytool -v -list -keystore 簽名文件名
輸入你設置的密碼
配置AndroidManifest.xml
<!--允許訪問網絡,必選權限--><uses-permission android:name="android.permission.INTERNET" /><!--允許獲取粗略位置,若用GPS實現定位小藍點功能則必選--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!--允許獲取設備和運營商信息,用于問題排查和網絡定位,若無gps但仍需實現定位小藍點功能則此權限必選--><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!--允許獲取網絡狀態,用于網絡定位,若無gps但仍需實現定位小藍點功能則此權限必選--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--允許獲取wifi網絡信息,用于網絡定位,若無gps但仍需實現定位小藍點功能則此權限必選--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!--允許獲取wifi狀態改變,用于網絡定位,若無gps但仍需實現定位小藍點功能則此權限必選--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><!--允許寫入擴展存儲,用于數據緩存,若無此權限則寫到私有目錄--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允許寫設備緩存,用于問題排查--><uses-permission android:name="android.permission.WRITE_SETTINGSS" /><!--允許讀設備等信息,用于問題排查--><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!--用于訪問GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><!--用于申請調用A-GPS模塊--><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/><!--如果設置了target >= 28 如果需要啟動后臺定位則必須聲明這個權限--><uses-permission android:name="android.permission.FOREGROUND_SERVICE"/><!--如果您的應用需要后臺定位權限,且有可能運行在Android Q設備上,并且設置了target>28,必須增加這個權限聲明--><uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>在application標簽中添加
<service android:name="com.amap.api.location.APSService" />實現定位藍點
MyLocationStyle myLocationStyle;
myLocationStyle = new MyLocationStyle();//初始化定位藍點樣式類myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//連續定位、且將視角移動到地圖中心點,定位點依照設備方向旋轉,并且會跟隨設備移動。(1秒1次定位)如果不設置myLocationType,默認也會執行此種模式。
myLocationStyle.interval(2000); //設置連續定位模式下的定位間隔,只在連續定位模式下生效,單次定位模式下不會生效。單位為毫秒。
myLocationStyle.showMyLocation(true);
aMap.setMyLocationStyle(myLocationStyle);//設置定位藍點的Style
aMap.getUiSettings().setMyLocationButtonEnabled(true);//設置默認定位按鈕是否顯示,非必需設置。
aMap.setMyLocationEnabled(true);// 設置為true表示啟動顯示定位藍點,false表示隱藏定位藍點并不進行定位,默認是false。
運行結果
模擬器可能會定位到舊金山附近
真機運行正常
可能遇到的問題—真機運行地圖顯示白屏
詳情見 https://lbs.amap.com/api/android-sdk/guide/create-project/dev-attention#t2
在onCreate中添加
MainActivity源碼
package com.example.myapplication;import android.os.Bundle; import com.amap.api.location.AMapLocationClient; import com.amap.api.maps.AMap; import com.amap.api.maps.MapView; import com.amap.api.maps.model.MyLocationStyle;public class MainActivity extends CheckPermissionsActivity {private MapView mMapView = null;private AMap aMap;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);AMapLocationClient.updatePrivacyShow(this,true,true);AMapLocationClient.updatePrivacyAgree(this,true);setContentView(R.layout.activity_main);//定義了一個地圖viewmMapView = (MapView) findViewById(R.id.map);mMapView.onCreate(savedInstanceState);// 此方法須覆寫,虛擬機需要在很多情況下保存地圖繪制的當前狀態。//初始化地圖控制器對象if (aMap == null) {aMap = mMapView.getMap();}MyLocationStyle myLocationStyle;myLocationStyle = new MyLocationStyle();//初始化定位藍點樣式類myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//連續定位、且將視角移動到地圖中心點,定位點依照設備方向旋轉,并且會跟隨設備移動。(1秒1次定位)如果不設置myLocationType,默認也會執行此種模式。myLocationStyle.interval(2000); //設置連續定位模式下的定位間隔,只在連續定位模式下生效,單次定位模式下不會生效。單位為毫秒。myLocationStyle.showMyLocation(true);aMap.setMyLocationStyle(myLocationStyle);//設置定位藍點的StyleaMap.getUiSettings().setMyLocationButtonEnabled(true);//設置默認定位按鈕是否顯示,非必需設置。aMap.setMyLocationEnabled(true);// 設置為true表示啟動顯示定位藍點,false表示隱藏定位藍點并不進行定位,默認是false。}@Overrideprotected void onDestroy() {super.onDestroy();//在activity執行onDestroy時執行mMapView.onDestroy(),銷毀地圖mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity執行onResume時執行mMapView.onResume (),重新繪制加載地圖mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity執行onPause時執行mMapView.onPause (),暫停地圖的繪制mMapView.onPause();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity執行onSaveInstanceState時執行mMapView.onSaveInstanceState (outState),保存地圖當前的狀態mMapView.onSaveInstanceState(outState);} }總結
以上是生活随笔為你收集整理的Android接入高德地图SDK 二显示小蓝点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [人工智能-深度学习-67]:目标检测
- 下一篇: 炼厂322℃工艺气余热换热器设计