我正在使用google_maps_flutter和位置插件来显示用户在我的应用程序中的位置。我想从我的应用程序本身启用gps权限,这似乎很琐碎,但当我尝试使用插件(如权限插件(时,我只能启用应用程序权限来访问位置,而不能启用gps权限。如果没有许可,我可以检查位置并举杯庆祝,但我如何从应用程序本身启用它?
我认为您想要的是打开位置设置,而不是AndroidManifest中包含的权限。此外,如果你需要的话,大多数地理定位器插件都有一个请求权限方法,而不是设置。
假设你想让用户打开并打开位置,在Android中,我认为你需要创建一个意图,所以它看起来像这样。。
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的更多信息,请点击
通常,您只需要包括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包执行此操作。