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

新版本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 application工程

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

第二步申请Android端AK

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

创建这个需要两个东西,一个是packageName,在这获取:

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

创建完后长这样:

第三步:添加依赖

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.BmfMapApplication

class MyApplication : BmfMapApplication() {
    override fun onCreate() {
        super.onCreate()
    }
}

创建好了长这样:

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

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

    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <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" />
    <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 定位权限 -->
    <uses-permission android:name
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容