目标
本文主要是记录一些依赖配置(也因这意外的折磨人,所以才由此文),最终将正确运行 官方示例 。
首先创建基本项目 flutter_map
使用 Android Studio/Visual Studio Code 创建:
流程就不记述了,默认得到初始的计数器程序。
运行命令添加依赖(或者直接编辑 yaml 文件)。
flutter pub add amap_flutter_location flutter pub add permission_handler
第一个是高德地图的定位插件,第二个是官方实例的一个依赖。
将 官方示例 复制到 main.dart
。
依据文档对于 Android ,需要编辑 AndroidManifest.xml
文件获取所需权限。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.flutter_map">
<!--访问网络-->
<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" />
还需要:
<application ....>
<!-- 配置定位Service -->
<service android:name="com.amap.api.location.APSService"/>
</application>
最坑的地方来了,官方文档并没有提到:
编辑 build.gradle
添加依赖:
文本如下:
dependencies {
implementation 'com.amap.api:location:latest.integration'
}
此时我们便可以运行项目查看结果了,但由于还未配置 Key 将得不到正确的结果。
申请 Key
申请 Key 的方法 官方文档 已经十分详细。
得到后将 Key 替换即可:
运行结果如下(模拟器环境,实机将得到详细地址):