Flutter中集成高德地图定位获取地理位置

Flutter 中集成高德定位获取地理位置

Android 配置

高德定位准备工作获取 key

生成 SHA1 值

官方文档:https://lbs.amap.com/faq/android/map-sdk/create-project/43112 通过命令行生成,mac 上执行生成的 java 环境

brew install openjdk@17

安装完成后执行,配置环境变量

vim ~/.zshrc

增加环境变量

export JAVA_HOME=/opt/homebrew/opt/openjdk@17
export PATH=$JAVA_HOME/bin:$PATH

让环境变量生效

source ~/.zshrc

20250907163725

在项目根目录下创建 keystore 文件

keytool -genkey -v -keystore android/app/my-release-key.jks -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

20250907164326 生成 SHA1 值

keytool -list -v -keystore android/app/my-release-key.jks -alias my-key-alias

查看 SHA1

keytool -list -v -keystore android/app/my-release-key.jks

20250907164456

配置高德 app 应用 20250907164830

得到相应的 key 20250907164856

查看 Android 端 PackageName 和配置 keyStore Android 端的 PackageName 可以直接在 Flutter 工程目录下 android/app/src/main/AndroidManifest.xml 里查看。 20250907171003

KeyStore 可以在 Flutter 工程目录下 android/app/build.gradle 中配置。 20250907171306

IOS 获取 key

安全码 Bundle ID

Bundle Identifier 后面的值

20250907170507

20250907170641

高德定位配置

官方文档:https://developer.amap.com/api/flutter/gettingstarted pub 地址:https://pub.dev/packages/amap_flutter_location

安装

dependencies:
  amap_flutter_location: ^3.0.0
  amap_flutter_map: ^3.0.0
  amap_flutter_base: ^3.0.0
  permission_handler: ^12.0.1
import 'package:amap_flutter_location/amap_flutter_location.dart';

配置 jks

在 android/app/src/build.gradle.kts

  signingConfigs {
      release {//发布版本的签名配置
          storeFile file('my-release-key.jks')
          keyAlias "my-key-alias"
          storePassword "123456"
          keyPassword "123456"
      }
      debug {//调试版本的签名配置
          storeFile file('my-release-key.jks')
          keyAlias "my-key-alias"
          storePassword "123456"
          keyPassword "123456"
      }
  }

配置权限

<!--访问网络-->
<uses-permission android:name="android.permission.INTERNET" />
<!--粗略定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--精确定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--申请调用A-GPS 模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--用于访问wifi 网络信息,wifi 信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--用于获取wifi 的获取权限,wifi 信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

增加编译依赖

在 android/app/src/build.gradle.kts 的 android 后面加上

dependencies {
    // 高德定位 SDK
    implementation("com.amap.api:location:5.2.0")

    // Kotlin 标准库
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7")
}

配置定位 Service

<application
......
<!-- 配置定位Service -->
<service android:name="com.amap.api.location.APSService"/>
......
</application>
0%