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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章