在Android 10中,当要求某些权限(例如“位置”)时,系统会提示用户3个选项:
有没有办法知道究竟是如何授予的?我使用此代码来知道是否授予位置:
boolean hasPermission = (ContextCompat.checkSelfPermission(oContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED);
但是我需要知道它是“一直”被授予还是仅在“使用该应用程序时”被授予。我真正需要的是一直获得权限,因为我的应用程序具有后台定位服务。因此,我需要知道是否已授予该许可权,或者是否有可能要求获得许可权,但而没有的可能性是“仅在使用应用程序时”允许它的选项。
requestPermissions(Context, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 123);
最佳答案
您可以使用:
boolean backgroundLocationPermissionApproved =
ActivityCompat.checkSelfPermission(this,
permission.ACCESS_BACKGROUND_LOCATION)
如果不让用户选择“仅在使用应用程序时”选项,则无法提示用户。
关于android - 如何知道是否授予位置权限 “Allow all the time”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59343219/