Flutter高德定位&&定位權限管理
- Flutter獲取定位
- 1 . 去高德開放平臺申請API獲取key值
- 2 . 獲取項目的ApplicationID
- 3 . 獲取本機電腦的sha1值
- 4. 配置build.grade和AndroidMainifest.xml文件
- 5.引入高德地圖插件(本人使用amap_location)
- 6.寫函數代碼
- 7.在項目下創建 keystore
- 8.在項目下創建 key.properties
- 9.配置Android/app/build.grade中的debug和release,修改buildTypes>release
- 10.用命令行輸入指令,打開key.jks文件獲取簽名文件
- 11.將獲取到的sha1值重新寫到高德的應用管理中
- 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