Mat*_*ani 6 android dart location-services flutter google-location-services
如何使用颤振在 android 设备上获取当前位置。我已经尝试了Location和GeoLocator插件,GeoLocator 3.0.0 在调试时显示此错误:
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Run Code Online (Sandbox Code Playgroud)
FAILURE:构建失败,出现异常。
Android 依赖项“android.arch.lifecycle:runtime”对于编译 (1.0.0) 和运行时 (1.1.0) 类路径具有不同的版本。您应该通过 DependencyResolution 手动设置相同的版本
位置 2.0.0也会在调试时引发错误。还有另一个名为geoLocation 的插件可用,但它与 dart 2.0 不兼容。在这种情况下,我如何获得位置(经度和纬度)[一次]?任何帮助将不胜感激。
小智 13
按照以下步骤在 IOS 和 Android 中获取位置。
geolocator: ^4.0.3 在依赖项下面添加pubspec.yaml 文件:标记import 'package:geolocator/geolocator.dart';在需要获取位置的地方添加dart 文件
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
对于 IOS,您需要<dict>在 IOS 项目下的 info.plist 文件中添加以下行
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open.</string>
获取位置的函数
void getLocation() async { Position position = await Geolocator .getCurrentPosition(desiredAccuracy: LocationAccuracy.high); print(position); }
干杯!
小智 6
在pubsec.yaml 中添加 GeoLocation Plugin
geolocator: ^6.0.0
运行flutter pub get
在 app/src/main/AndroidManifest.xml 中为Android添加位置权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to location when in the background.</string>
Run Code Online (Sandbox Code Playgroud)
LatLng currentPostion;
void _getUserLocation() async {
var position = await GeolocatorPlatform.instance
.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
setState(() {
currentPostion = LatLng(position.latitude, position.longitude);
});
}
Run Code Online (Sandbox Code Playgroud)
GoogleMap(
// onMapCreated: _onMapCreated,
initialCameraPosition: CameraPosition(
target: currentPostion,
zoom: 10,
),
),
Run Code Online (Sandbox Code Playgroud)
我安装的 geoLocator 插件使用 Android x jetpack 库,而我的项目使用支持库,因此这种冲突导致了问题,当我更新项目以使用 Android x 库时,问题得到解决。
| 归档时间: |
|
| 查看次数: |
28118 次 |
| 最近记录: |