Flutter高德定位&&定位权限管理

Flutter获取定位

1 . 去高德开放平台申请API获取key值

2 . 获取项目的ApplicationID

	D:\VS_history\speedtest1\android\app\src\main\AndroidMainifest.xml

3 . 获取本机电脑的sha1值

在cmd命令行中获取:
		1.win+r输入cmd,按Enter
		2.输入指令 : keytool -list -v -keystore "路径\.android\debug.keystore" -alias 
		androiddebugkey -storepass android -keypass androidd  
		3.得到下列内容
				别名: androiddebugkey
			创建日期: ------
			条目类型: ------
			证书链长度: 1
			证书[1]:
			所有者: C=US, O=Android, CN=Android Debug
			发布者: C=US, O=Android, CN=Android Debug
			序列号: 1
			有效期开始日期: ------, 截止日期: ------
			证书指纹:
		         MD5:  ------
				SHA1:		 ---要求获取的sha1值---
	     		  SHA256:  -----
		     签名算法名称: SHA1withRSA
	 	     版本: 1

4. 配置build.grade和AndroidMainifest.xml文件

在build.grade中配置:
	defaultConfig {
    applicationId "package名字"
    manifestPlaceholders = [
            AMAP_KEY : "-------", /// 高德地图key
    ]
}
在AndroidMainifest.xml中配置:
       <meta-data
            android:name="填入packageId"
            android:value="高德地图的key" />

5.引入高德地图插件(本人使用amap_location)

在pubspec.yaml引入:
	dependencies:
	  flutter:
      sdk: flutter
	  amap_location:

6.写函数代码

  await AMapLocationClient.startup(new AMapLocationOption(
    desiredAccuracy: CLLocationAccuracy.kCLLocationAccuracyHundredMeters));
    //打开高德sdk

   AMapLocationClient.getLocation(true).then((address) {
      loca1 = address.latitude.toStringAsFixed(2);
      loca2 = address.longitude.toStringAsFixed(2);
      loca3 = address.district.toString();
      setState(() {});
      print("$loca3 :($loca2 , $loca1)");
      //获取 城市:(精度,纬度)

以上方法使用的是本机的签名文件,APP不可共享

以 下 操 作 可 实 现 A P P 的 共 享

7.在项目下创建 keystore

		在cmd命令行输入:
		keytool -genkey -v -keystore d:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key	

8.在项目下创建 key.properties

		key.properties 文件内容为:

		storePassword=xxx        --创建keystore时的密码

		keyPassword=xxx        --创建keystore时的密码

		keyAlias=key

		storeFile=d:/key.jks    --key.jks的路径

9.配置Android/app/build.grade中的debug和release,修改buildTypes>release

在 buildTypes 上面一行新增 

signingConfigs {
  release {
					keyAlias keystoreProperties['keyAlias']
					keyPassword keystoreProperties['keyPassword']
					storeFile file(keystoreProperties['storeFile'])
					storePassword keystoreProperties['storePassword']
					}
					}
  debug {
					keyAlias keystoreProperties['keyAlias']
					keyPassword keystoreProperties['keyPassword']
					storeFile file(keystoreProperties['storeFile'])
					storePassword keystoreProperties['storePassword']
					}
					}
		buildTypes>release 则修改为:signingConfig signingConfigs.release

10.用命令行输入指令,打开key.jks文件获取签名文件

    1.转到Android文件下:cd .android
	2.输入指令:keytool -list -v -keystore debug.keystore

11.将获取到的sha1值重新写到高德的应用管理中

Flutter定位权限管理

1.引入包

	在pubspec.yaml中引入:location_permissions: ^2.0.0

2.请求许可

  PermissionStatus permission1 =
      await LocationPermissions().requestPermissions(); //请求许可

特别注意:

仅供参考学习,转载请附上原文链接
分享学习心得,如有侵权,望联系本人处理
还在读大学的程序员,项目经验少,如有纰漏,感谢指正
需要源代码请联系本人
谢谢配合

如果这篇文章对您有帮助,小小的点个赞,算是给小学弟的鼓励吧!谢谢大佬!!/呱呱.jpg

发布了48 篇原创文章 · 获赞 35 · 访问量 4985

猜你喜欢

转载自blog.csdn.net/qq_44749053/article/details/101102785