我正在使用google_maps_flutter和location插件来显示用户在我的应用中的位置。 我想从我的应用程序本身启用gps权限,这似乎微不足道,但是当我尝试使用插件(例如permission插件)时,我只能启用应用程序权限来访问位置,而不能启用gps权限。如果没有许可,我可以检查位置并举杯,但是如何从应用程序本身启用它?
答案 0 :(得分:3)
我认为您想要打开的是AndroidManifest中包含的位置设置,而不是权限。另外,如果需要,大多数geolocator插件中都有一个请求权限方法,而不是设置。
假设您希望用户打开并打开该位置,在Android中,我认为您需要创建一个intent,所以它看起来像这样。
import 'package:android_intent/android_intent.dart';
Then in your class...
static Future makeLocationDialogRequest() async {
final AndroidIntent intent = new AndroidIntent(
action: 'android.settings.LOCATION_SOURCE_SETTINGS',);
intent.launch();
}
然后可以使用您选择的插件进行检查,以检查用户是否确实启用了该位置。
注意,这仅适用于Android,因此请事先检查其是否为Android设备,例如
var platform = Theme.of(context).platform;
有关android_intent here的更多信息
答案 1 :(得分:1)
通常,您只需要在manifest.xml
文件上包含权限(在Android上),例如:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.INTERNET" />
或在iOS上,通过将此值添加到您的info.plist
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
但是,如果要在运行时检查或询问以获得特定权限,则可以使用simple_permissions软件包。