问题

我尝试请求权限使用Lutter应用程序的位置数据.我正在使用 geolocator 插件和权限_handler .两者都添加到我的pubspec.yaml.

我之后添加了

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 

到我的android/app/src/main/AndroidManifest.xml.

我启动我的应用程序时做的第一件事,是

 PermissionHandler().requestPermissions([PermissionGroup.location]).then((val) {
  ...
});
 

如果我然后在模拟器上或在我的物理手机上运行它,它返回一个PermissionStatus.unknown并随后调用GeoLocator()

 No permissions found in manifest for: $permission 
 

如果我进入app-settings,它说没有要求特殊权限.

当我打开与Android项目完全相同的项目时(我正在使用Android Studio,在Android Studio中打开Android项目有一个整齐的下拉选项)并在我的手机上运行它按预期工作 – 它要求权限,如果我进入app-settings,我也可以看到请求的权限.

任何人都知道为什么它不会用flutter“传播”?

  最佳答案

似乎主要的问题是,当简单地重新启动应用程序时,AndroidManifest.xml没有更新.但是,如果首先执行flutter clean然后重新构建它,则更新了AndroidManifest.xml.

我不确定这是否是预期的行为,但它有效.只是需要记住的东西.

  相同标签的其他问题

androidflutter