使用LocationManager检查是否有权限

时间:2015-12-07 12:23:24

标签: android service permissions locationmanager android-6.0-marshmallow

我需要将位置发送到服务器。 这是我的服务类:

lm.requestLocationUpdates(PROVIDER,600000,0,myLocationListener);

但我不知道如何调用它,因为这需要检查权限。

建议吗?

1 个答案:

答案 0 :(得分:2)

检查权限不会改变,只是因为您正在使用服务。在服务本身上调用checkSelfPermission()

的不同之处在于,您无法向用户询问来自服务。

涵盖大多数用例的最佳解决方案是在您启动(或绑定)服务之前检查您的活动/片段中的权限,如果您不这样做,则要求用户获得许可有它。

或者,让您的服务显示Notification,从而导致您可以向用户请求权限的活动。活动需要重新请求服务在此时完成其工作,因此服务知道调用requestLocationUpdates()是安全的。