BaiduMapSDK_Map.jar、libBaiduMapSDK_map.so 等)。// build.gradle (Module: app)
dependencies {
implementation files('libs/BaiduMapSDK_Map.jar')
// 若使用 Maven 遠程倉庫(推薦)
implementation 'com.baidu.mapapi:map-sdk:3.0.0' // 版本號以官網為準
}
同步後,將 .so 文件放入 src/main/jniLibs/arm64-v8a/ 及 armeabi-v7a/ 目錄。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_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"/>
<application ...>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="你的_AK_Key"/>
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote"></service>
</application>
// Application 子類中
public class MyApp extends Application {
@Override public void onCreate() {
super.onCreate();
SDKInitializer.initialize(this);
}
}
<!-- activity_main.xml -->
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private MapView mMapView;
private BaiduMap mBaiduMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
// 開啟定位圖層
mBaiduMap.setMyLocationEnabled(true);
}
@Override protected void onResume() { super.onResume(); mMapView.onResume(); }
@Override protected void onPause() { super.onPause(); mMapView.onPause(); }
@Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); }
}
LocationClient,配置 LocationClientOption,回調 BDAbstractLocationListener。MarkerOptions、PolylineOptions、GroundOverlayOptions。RoutePlanSearch 驅動/騎行/步行/公交策略。GeoCoder 正/逆地理編碼。Authentication failed,請核對 SHA1(Debug/Release 區分)。jniLibs 包含 arm64-v8a。onResume/onPause 生命週期。更多進階用法請參考 官方開發指南 或 CSDN 相關博客實戰教程。