2025年定位打开了无法获取位置安卓手机(安卓手机获取定位失败)

定位打开了无法获取位置安卓手机(安卓手机获取定位失败)static Future lt FlutterLocat gt determinePos async span style color rgba 0 0 255 1 bool span

大家好,我是讯享网,很高兴认识大家。



static Future<FlutterLocation> determinePosition() async {
讯享网
讯享网</span><span style="color: rgba(0, 0, 255, 1)">bool</span><span style="color: rgba(0, 0, 0, 1)"> serviceEnabled; LocationPermission permission; Position p; </span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)"> {<br>    //这里使用的权限申请插件 ,请自行搜索相关文档配置获取依赖 PermissionStatus permissionStatus </span>= <span style="color: rgba(0, 0, 255, 1)">await</span><span style="color: rgba(0, 0, 0, 1)"> LocationPermissions().requestPermissions(); </span><span style="color: rgba(0, 0, 255, 1)">if</span>(PermissionStatus.granted ==<span style="color: rgba(0, 0, 0, 1)"> permissionStatus) { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Test if location services are enabled.</span> serviceEnabled = <span style="color: rgba(0, 0, 255, 1)">await</span><span style="color: rgba(0, 0, 0, 1)"> Geolocator.isLocationServiceEnabled(); </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">serviceEnabled) { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Location services are not enabled don't continue </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> accessing the position and request users of the </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> App to enable the location services.</span> <span style="color: rgba(0, 0, 255, 1)">return</span> Future.error(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Location services are disabled.</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">); } permission </span>= <span style="color: rgba(0, 0, 255, 1)">await</span><span style="color: rgba(0, 0, 0, 1)"> Geolocator.checkPermission(); </span><span style="color: rgba(0, 0, 255, 1)">if</span> (permission ==<span style="color: rgba(0, 0, 0, 1)"> LocationPermission.denied) { permission </span>= <span style="color: rgba(0, 0, 255, 1)">await</span><span style="color: rgba(0, 0, 0, 1)"> Geolocator.requestPermission(); </span><span style="color: rgba(0, 0, 255, 1)">if</span> (permission ==<span style="color: rgba(0, 0, 0, 1)"> LocationPermission.deniedForever) { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Permissions are denied forever, handle appropriately.</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> Future.error( </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Location permissions are permanently denied, we cannot request permissions.</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">); } </span><span style="color: rgba(0, 0, 255, 1)">if</span> (permission ==<span style="color: rgba(0, 0, 0, 1)"> LocationPermission.denied) { </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Permissions are denied, next time you could try </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> requesting permissions again (this is also where </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Android's shouldShowRequestPermissionRationale </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> returned true. According to Android guidelines </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> your App should show an explanatory UI now.</span> <span style="color: rgba(0, 0, 255, 1)">return</span> Future.error(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Location permissions are denied</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">); } } </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> p = await AMapLocationClient.getLocation(true);</span> p = <span style="color: rgba(0, 0, 255, 1)">await</span><span style="color: rgba(0, 0, 0, 1)"> Geolocator.getCurrentPosition(); print(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">location is get ${p}</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">); } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{ </span><span style="color: rgba(0, 0, 255, 1)">await</span><span style="color: rgba(0, 0, 0, 1)"> LocationPermissions().openAppSettings(); } } </span><span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (e) { ToastUtil.showToast(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">获取定位失败:$e</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">); } </span><span style="color: rgba(0, 0, 255, 1)">return</span> FlutterLocation(p?.latitude, p?<span style="color: rgba(0, 0, 0, 1)">.longitude); 
}

讯享网

小讯
上一篇 2025-05-10 08:32
下一篇 2025-06-06 10:18

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177304.html