> 技术文档 > 新版本flutter(3.32.7) android 端集成百度地图sdk_fluuter3.32.7

新版本flutter(3.32.7) android 端集成百度地图sdk_fluuter3.32.7


新版本flutter(3.32.7) android 端集成百度地图sdk

因为官方文档有很多地方没有说清楚,导致在适配过程中踩了很多坑,本文档基于已经实现集成的flutter安卓端应用编写。

官方文档地址:https://lbs.baidu.com/faq/api?title=flutter/loc/create-project/configure

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面,因其毫秒级热重载能够实现快速开发、具备超强原生性能以及富有表现力和灵活的UI,越来越受开发者喜爱,因此推出百度定位Flutter插件供广大开发者在开发Flutter Application的时候,可以集成本插件实现基本定位需求。

集成后地图长这样:

新版本flutter(3.32.7) android 端集成百度地图sdk_fluuter3.32.7

第一步:打开/创建一个flutter application工程

根据开发者的实际使用情况,打开一个已有的flutter application工程,或新建一个flutter application工程。 这里不再赘述。

第二步申请Android端AK

在百度地图开放平台控制台应用管理中创建Android端AK
如果之前没有认证过需要先登录,再认证开发者。
地址:https://lbs.baidu.com/apiconsole/key

创建这个需要两个东西,一个是packageName,在这获取:
新版本flutter(3.32.7) android 端集成百度地图sdk_fluuter3.32.7

另一个是 SHA1码,网上自行查找获取方法。

创建完后长这样:
新版本flutter(3.32.7) android 端集成百度地图sdk_fluuter3.32.7

第三步:添加依赖

pubspec.yaml 文件添加flutter依赖

 # 百度地图 flutter_baidu_mapapi_base: ^3.9.5 flutter_baidu_mapapi_map: ^3.9.5 flutter_baidu_mapapi_utils: ^3.9.5 flutter_baidu_mapapi_search: ^3.9.5 permission_handler: ^12.0.1 # 动态申请权限插件 geolocator: ^14.0.2 # 获取当前定位插件

百度地图使用只需要前四个即可,后面是我定位还有获取权限使用。不需要的可以不加

dart run pub get 下载依赖

第四步:新建 MyApplication.kt 文件

MainActivity 同级目录下创建 MyApplication.kt 文件,内容如下:

package xxx // 这个package要和 MainActivity 里面的一致import com.baidu.mapapi.base.BmfMapApplicationclass MyApplication : BmfMapApplication() { override fun onCreate() { super.onCreate() }}

创建好了长这样:
新版本flutter(3.32.7) android 端集成百度地图sdk_fluuter3.32.7

第五步:调整 android AndroidManifest.xml 文件

调整 android/app/src/main/AndroidManifest.xml 文件,调整如下:
1、在 manifest 子节点新增如下内容,用于sdk的权限声明

  <uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\" />  <uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />  <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />  <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />  <uses-permission android:name=\"android.permission.INTERNET\" />  <uses-permission android:name