feat: support custom map key

This commit is contained in:
ZCShou 2025-08-11 15:31:04 +08:00
parent 67a06a33d9
commit ed7e65b689
6 changed files with 20 additions and 30 deletions

View File

@ -61,11 +61,6 @@
android:name="org.apache.http.legacy"
android:required="false" />
<!-- 百度地图开发者 Key -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="${MAPS_API_KEY}" />
<!-- 百度地图 间隔定位必须配置此service否则功能无效 -->
<service
android:name="com.baidu.location.f"

View File

@ -78,8 +78,6 @@ public class FragmentSettings extends PreferenceFragmentCompat {
return false;
} else {
pfMapKey.setSummary(newValue.toString());
SDKInitializer.setApiKey(newValue.toString());
SDKInitializer.initialize(requireContext().getApplicationContext());
return true;
}
}

View File

@ -1,12 +1,13 @@
package com.zcshou.gogogo;
import android.app.Application;
import android.content.SharedPreferences;
import androidx.preference.PreferenceManager;
import com.baidu.location.LocationClient;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.common.BaiduMapSDKException;
import com.elvishew.xlog.LogConfiguration;
import com.elvishew.xlog.LogLevel;
import com.elvishew.xlog.XLog;
@ -30,18 +31,26 @@ public class GoApplication extends Application {
initXlog();
// 参数生成默认值
PreferenceManager.setDefaultValues(this, R.xml.preferences_main, false);
// 获取参数实例
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
// 获取地图的 KEY 用来初始化地图 SDK
String key = preferences.getString("setting_map_key", BuildConfig.MAPS_API_KEY);
// 从参数区取地图 key
if (key != null && !key.equals(getResources().getString(R.string.setting_map_key_default))) {
SDKInitializer.setApiKey(key);
} else {
SDKInitializer.setApiKey(BuildConfig.MAPS_API_KEY);
}
// 百度地图 7.5 开始要求必须同意隐私政策默认为false
SDKInitializer.setAgreePrivacy(this, true);
// 百度定位 7.5 开始要求必须同意隐私政策默认为false(官方说可以统一为以上接口但实际测试并不行定位还是需要单独设置)
LocationClient.setAgreePrivacy(true);
try {
// 在使用 SDK 各组间之前初始化 context 信息传入 ApplicationContext
SDKInitializer.initialize(this);
SDKInitializer.setCoordType(CoordType.BD09LL);
} catch (BaiduMapSDKException e) {
XLog.e("ERROR init baidu sdk");
}
// 在使用 SDK 各组间之前初始化 context 信息传入 ApplicationContext
SDKInitializer.initialize(this);
SDKInitializer.setCoordType(CoordType.BD09LL);
}
/**

View File

@ -53,7 +53,6 @@ import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
@ -455,13 +454,6 @@ public class MainActivity extends BaseActivity implements SensorEventListener {
/*============================== 主界面地图 相关 ==============================*/
private void initMap() {
// 从参数区取地图key
String key = sharedPreferences.getString("setting_map_key", BuildConfig.MAPS_API_KEY);
if (key != null && !key.equals(getResources().getString(R.string.setting_map_key_default))) {
SDKInitializer.setApiKey(key);
SDKInitializer.initialize(getApplicationContext());
}
// 地图初始化
mMapView = findViewById(R.id.bdMapView);
mMapView.showZoomControls(false);

View File

@ -23,7 +23,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.PreferenceManager;
import com.zcshou.utils.GoUtils;
@ -48,9 +47,6 @@ public class WelcomeActivity extends AppCompatActivity {
setContentView(R.layout.activity_welcome);
// 生成默认参数的值一定要尽可能早的调用因为后续有些界面可能需要使用参数
PreferenceManager.setDefaultValues(this, R.xml.preferences_main, false);
Button startBtn = findViewById(R.id.startButton);
startBtn.setOnClickListener(v -> startMainActivity());

View File

@ -64,10 +64,10 @@
<string name="setting_altitude">海拔高度(米)</string>
<string name="setting_altitude_default">55.0</string>
<!-- 地图相关参数 -->
<string name="setting_group_map">地图</string>
<string name="setting_group_map">地图(重启后生效)</string>
<string name="setting_map_type">地图类型</string>
<string name="setting_map_key">地图 KEY</string>
<string name="setting_map_key_default">无自定义 KEY</string>
<string name="setting_map_key_default">内置 KEY</string>
<!-- 位置偏移相关参数 -->
<string name="setting_group_location_offset">位置偏移</string>
<string name="setting_random_offset">随机偏移</string>