Kotlin:我如何请求从模拟器访问ACCESS_FINE_LOCATION?

我正在使用地图,在模拟器上运行时,地图不起作用。 在我的日志中,出现一个错误,告诉我必须授予对ACCESS_FINE_LOCATION的访问权限。 我如何在KOTLIN中做到这一点? 我只能用JavafindS / O的答案。 我得到的错误是:

位置提供者需要ACCESS_FINE_LOCATION权限

在你的清单写这行要求的位置权限

 

由于您试图请求的权限被标记为“危险”权限,因此您必须在运行时请求该权限

https://developer.android.com/guide/topics/permissions/requesting.html#normal-dangerous

在onCreate中你的活动或片段写这个

  override fun onCreate(savedInstanceState: Bundle?) { val permissions = arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION) ActivityCompat.requestPermissions(this, permissions,0) } 

上面的代码是不推荐在生产就绪的应用程序,它只是测试建议好,在生产就绪的应用程序,你必须考虑这种情况下,当你请求运行时权限:

  • 处理权限请求过程中的配置更改。
  • 如果用户第一次拒绝了权限请求,则第二次处理该情况。
  • 显示对话,说明你为什么需要权限或用户的利益,如果他对你的许可

如果你需要处理所有上述情况,你可以尝试这个库https://github.com/permissions-dispatcher/PermissionsDispatcher

或者你可以手动完成。