Google maps 如何从应用程序本身启用位置跟踪权限?

Google maps 如何从应用程序本身启用位置跟踪权限?,google-maps,permissions,flutter,Google Maps,Permissions,Flutter,我正在使用和插件在我的应用程序中显示用户的位置。 我想从我的应用程序本身启用gps权限,这似乎微不足道,但当我尝试使用插件(如plugin)时,我只能启用访问位置的应用程序权限,而不能启用gps权限。如果没有权限,我可以检查位置并祝酒,但如何从应用程序本身启用它?通常,您只需要在Android上的manifest.xml文件中包含权限,例如: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&

我正在使用和插件在我的应用程序中显示用户的位置。
我想从我的应用程序本身启用gps权限,这似乎微不足道,但当我尝试使用插件(如plugin)时,我只能启用访问位置的应用程序权限,而不能启用gps权限。如果没有权限,我可以检查位置并祝酒,但如何从应用程序本身启用它?

通常,您只需要在Android上的manifest.xml文件中包含权限,例如:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-permission android:name="android.permission.INTERNET" />

但是,如果您想在运行时检查或请求特定的权限,可以使用包进行检查

我认为您想要的是打开位置设置,而不是AndroidManifest中包含的权限。此外,如果需要,大多数geolocator插件中都有请求权限方法,而不是设置

假设您希望用户打开并打开位置,在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的更多信息

是的,我已经添加了权限,但我谈论的是用户明确关闭gps权限的情况。例如,在谷歌地图中,你会得到一个弹出窗口来启用它。简单权限也只处理应用程序权限。如果用户明确关闭了特定应用程序的权限,那可能是因为他不想使用该功能,因此他应该意识到这一点,我认为这是一种正常行为,可能需要自己启用设置。然而,正如我提到的,使用简单的权限,您可以在运行时询问或检查特定的权限。用户没有关闭特定应用程序的权限,而是关闭了位置跟踪服务本身-常规设置。简单的权限是为特定应用程序启用权限,而不是设备的位置跟踪器本身。恐怕这超出了应用程序的功能范围。由用户和系统来管理这些设置。如果您关闭wifi/数据等,也会发生同样的情况,您需要手动或在某些情况下,通过任何系统配置打开它们。必须有某种方法。我在优步、奥拉和谷歌地图等应用程序中看到过这种情况!我希望我的应用程序可以在android和iOS上运行,Geologitor插件检查的权限也是应用程序权限,而不是GPS权限
var platform = Theme.of(context).platform;